Rails db:migrate / db:create。存在的数据库冲突

时间:2016-04-12 11:22:23

标签: ruby-on-rails ruby postgresql

我之前在PC上使用Spring MVC + PostgreSQL制作了一些webapps。

想要尝试RoR,面对数据库连接的奇怪问题,google并没有帮助。

我创建了新的Rails Web应用程序,制作了一个模型并尝试进行迁移。 (Last Rails gem,5.0.0.beta3)

问题是:

当我正在运行db:migrate / create / drop时 Rails试图操纵我现有的数据库,而不是创建新数据库。

-i在我的本地PostgreSQL服务器上有一些PostgreSQL数据库,我仍然希望在它上面保持活跃状态​​。让我们说' XXXXXXX',' YYYYYYYYY',' ZZZZZZZZZ'

一旦我运行db:create我得到以下日志:

C:\Users\****\RubymineProjects\sample_articles>rails db:create
'XXXXXXX' already exists

成功执行数据库迁移,并创建一个额外的数据库' sample_articles_development',这是我在database.yml中指定的名称。但新表格出现在我现有的数据库' XXXXXXX'(我没有在任何配置中配置)。

这是我的database.yml配置:

default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: sample_articles_development
  username: rails
  password: *******
  host: localhost
  port: 5432

test:
  <<: *default
  database: sample_articles_test

production:
  <<: *default
  database: sample_articles_production
  username: sample_articles
  password: <%= ENV['SAMPLE_ARTICLES_DATABASE_PASSWORD'] %>

1 个答案:

答案 0 :(得分:1)

您的环境中可能有$DATABASE_URL个变量。这将覆盖database.yml中的值。

unset DATABASE_URL