0

現在、Rails 3.2.9 アプリケーションは、Mac Mini Server を Mountain Lion にアップグレードしたときに PgAdmin を使用して再作成された PostgreSQL データベースを使用しています。データベースは、私が知らないうちにバージョン 9.2.1 として作成されました。私が使用した PgAdmin のバージョンが、そのバージョン番号でそれらを作成したと思います。Mountain Lion へのアップグレードに付属していた Postgres バージョン 9.1.4 しか持っていませんでした。バックグラウンド ジョブを実行する queue_classic の実装で問題が発生していたため、psql のバージョンをデータベース ファイルのバージョンと一致させる方法について別の質問を送信しました。この時点で、私は何の応答も受け取っていません。私は引き続き postgres.app について調べて学びました。現在のバージョンは PostgreSQL 9.2.2 を実行しています。

現在のデータベースのデータを CSV ファイルにコピーしました。また、postgres.app で psql ターミナルを使用し、Rails アプリケーションで使用する新しいデータベースを作成しました。config/database.yml の開発およびテスト データベースの定義を変更して、これを完全にテストするまで実稼働データベースを台無しにしないようにすることにしました。Railsアプリケーションがpostgres.appで作成されたデータベースを指していることを確実に知ることができるように、異なる名前でデータベースを作成しました。

postgres.app Web サイトに記載されているように、.bashrc のパスを変更しました。which psql を実行すると、postgres.app バージョン 9.2.2 を正しく指します。postgres.app のウェブサイトの指示に従って、開発用の config/database/yml を次のように変更しました。

development:
  adapter: postgresql
  encoding: unicode
  database: newname_devl

通常どおり localhost:3000 を使用して Rails アプリを実行すると、アプリケーションは元のデータベースを指しています。rake db:migrate を実行してすべてのテーブルを新しいデータベースに再構築していなかったため、エラーが発生することを予期していました。

どういうわけか、PostgreSQL データベースのバージョンを PostgreSQL のバージョンと一致させる必要がありますが、ここからどこに行けばよいかわかりません。探し続けます。

どんな助けでも大歓迎です。

更新 2012 年 12 月 31 日午前 5 時 50 分 CST GMT-6

以下のコマンドを試しました。これは私が以前に試したものです。コマンドの下にエラー (ユーザー名がマスクされています) が表示されました。

psql -h localhost
psql: FATAL:  role "username" does not exist

ロール「ユーザー名」を作成し、コマンドを再試行しました。次のエラーが発生しました。

psql: FATAL:  database "username" does not exist

以下のコマンドを試すことにしました。コマンドの下にリストされたエラーが表示されました。

psql -h localhost -U _postgres
psql: FATAL:  database "_postgres" does not exist

データベース _postgres が存在しません。データベース pos​​tgres が行います。

4

1 に答える 1

1

database.yml を正しい名前に更新した場合、間違ったデータベースにどのようにアクセスするのかわかりません。database.yml のデータベース名を「foobar123」に変更したり、古い Postgres にも新しい Postgres にも存在しないと確信している名前を変更するとどうなりますか?

于 2012-12-28T18:32:21.847 に答える