当我执行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
答案 0 :(得分:0)
显然,这是CartoDB上的一个错误,并由他们在最新版本中修复。