2016-04-12 9 views
0

以前私のPC上でSpring MVC + PostgreSQLを使用していくつかのWebアプリケーションを作成していました。Rails db:migrate/db:create。既存のデータベースの競合

RoRを試してみたい、DB接続で奇妙な問題に直面して、Googleが助けていない。

新しいRails Webアプリケーションを作成し、1つのモデルを作成して移行を試みました。 (最後のRailsの宝石、5.0.0.beta3)

問題がある:

私はデシベルを実行している:Railsが操作しようとしている ドロップ/作成/移行、私の既存のDBの代わりに新しい創造のもの。

-i私のローカルPostgreSQLサーバにはPostgreSQLデータベースがいくつかありますが、それでもまだ有効にしています。私はデシベルを実行すると「XXXXXXX」、「YYYYYYYYY」、「ZZZZZZZZZ」

を言うことができます:

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

DBの移行が正常に実行され、また、一つの追加のデータベース「sample_articles_development」を作成している:私は、次のログを取得する作成これは私がdatabase.ymlに指定した名前です。しかし、新しいテーブルは私の存在するデータベース 'XXXXXXX'に表示されます(これは私が設定したものではありません)。

これは私のdatabase.yml configです:

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'] %> 
+0

「rake db:create」のみ新しいデータベースを作成しようとします。 'rake db:migrate'は既存のものを使用します(database.ymlから読み込みます)。あなたは 'rake db:create'を"マイグレーションを行う "と呼んでいます。そうではありません - あなたはただのことだけを混乱させています。 –

+0

おそらく混乱します。私はRailsにとって全く新しいものです。さて、問題はdb:migrateだと言うことができます。 しかし、それでも私はそれが私の既存のDBのどれかを使用しているのか理解できないということです – user1935987

+0

あなたの質問は「私がdbを実行しているとき:Railsは既存のDBを操作しようとしています。期待される行動は間違っていません。 –

答えて

1

あなたはおそらく、あなたの環境で$DATABASE_URL変数を持っています。これはdatabase.ymlの値を上書きします。

unset DATABASE_URL 
+0

これは問題でした。ありがとう、この事件については考えなかった。 – user1935987

関連する問題