2

コマンドで新しいサイトを作成した後

rails new board --skip-bundle
...
rake db:create

「XXXXX は既に存在します」のような一貫性のないメッセージがあり、何か問題が発生していることを示しています。

再現:

rails new board --skip-bundle 
...
$ rake db:migrate
rake aborted!
FATAL:  database "boardio" does not exist

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

データベースを作成しようとする場合:

$ rake db:create
boardio already exists

ここには「存在する」と書かれています。「存在しない」とだけ言われました:なぜrakeは間違ったメッセージを出すのですか? 何がうまくいかないのですか?この移行が正常に実行されたように見えた後:

$ rake db:migrate
==  CreateMyTables: migrating =================================================
-- create_table("users")
NOTICE:  CREATE TABLE will create ........column "users.id"
.............

バージョンに関する詳細:

$ ruby --version
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]

$ rails --version
Rails 3.1.3

ありがとうございました。

4

2 に答える 2

0

「存在しません」というエラーが発生したため、外部ツールを使用してデータベースを削除しました。

次に、永続化された「既に存在します」というエラーを取り除くために、「schema.rb」の名前を「old_broken_db_schema.rb」に変更しました。

これにより、データベースを作成して移行することができました。

于 2015-06-17T12:36:53.637 に答える
0

詳細を知らなければ、何がこの奇妙な動作を引き起こしているのかわかりません。これが再び発生した場合は、すべてのデータベースを削除して作成することをお勧めします。

rake db:drop:all && rake db:create:all
于 2012-06-04T21:09:55.360 に答える