当我尝试配置CartoDB时,不能使用db:create

时间:2019-03-22 09:48:31

标签: mysql postgresql docker cartodb

当我执行RAILS_ENV=development bundle exec rake db:create时,我得到了:

  耙子中止了!没有与Sequel :: Model关联的数据库:您是否调用过Sequel.connect或Sequel :: Mode.db =?

我尝试执行RAILS_ENV=development bundle exec rake db:drop,我得到了:

  耙子中止了!未配置数据库。请创建config / database.yml或在环境中设置DATABASE_URL。

我看不到什么是真正的问题,因为我有config / database.yml,并且是正确的,因为它是从CartoDB下载的,应该不会出现问题。

即使那应该没问题,我也删除了原始文件并创建了自己的database.yml,其中所有内容均已正确定义,并且yaml验证程序接受了yaml代码。仍然存在相同的问题。

我尝试用DATABASE_URL=/path/to/database.yml/执行命令,并遇到了同样的问题。

我试图删除database.yml并得到相同的错误,就像它是否存在无关紧要。这可能使您认为我将文件放置在错误的位置,但是我尝试执行删除app_config.yml的操作,并得到错误提示文件丢失。这两个必须位于同一文件夹中,所以我想问题也不是那个。

最后,我在psql上创建了我需要的名称的数据库,之后一切正常(例如db:migrate)。问题是我需要使用database.yml文件而不是我自己创建它们。

这是我的database.yml文件,以防万一我错过了一些东西:

production:
  adapter: postgresql
  encoding: unicode
  host: localhost
  port: 5432
  direct_port: 5432
  database: carto_db_production
  username: postgres
  password:
  conn_validator_timeout: 900
  connect_timeout: 2.5
  prepared_statements: false

staging:
  adapter: postgresql
  encoding: unicode
  host: localhost
  port: 5432
  direct_port: 5432
  database: carto_db_staging
  username: postgres
  password:
  conn_validator_timeout: 900
  connect_timeout: 2.5
  prepared_statements: false

development:
  adapter: postgresql
  encoding: unicode
  host: localhost
  port: 5432
  direct_port: 5432
  database: carto_db_development
  username: postgres
  password:
  conn_validator_timeout: 900
  connect_timeout: 2.5
  pool: 50
  prepared_statements: false

test:
  adapter: postgresql
  encoding: unicode
  database: carto_db_test
  host: localhost
  port: 5432
  direct_port: 5432
  username: postgres
  password:
  conn_validator_timeout: -1
  connect_timeout: -1
  prepared_statements: false

1 个答案:

答案 0 :(得分:0)

显然,这是CartoDB上的一个错误,并由他们在最新版本中修复。