0

ローカルマシンでMySQLを使用して実行しているアプリケーションがあります。Railsでブール値として定義するフィールドがあります。これはMySQLでは0または1で表されます。

現在、PostgreSQLを使用しているHerokuに移行しようとしています。コードとデータベースをHerokuにプッシュした後、アプリを実行できません。

エラーメッセージが表示されます。

ActiveRecord::StatementInvalid (PGError: ERROR:  operator does not exist: boolean = integer

どうすれば修正できますか?

皆さんありがとう。

4

1 に答える 1

3

これは、MySQLがブール属性を格納するためにTinyInt(1)を使用しているのに対し、PostgreSQLはネイティブのブール型を持っているためです。

次のような移行ツールを使用することをお勧めします

https://github.com/maxlapshin/mysql2postgres

これらの問題の処理を処理します。

ローカルのpostgresデータベースをセットアップします。MySQLからローカルのPostgresDBに移行します。次に、タップを使用してローカルのpostgresDBからHerokuにプッシュします。

また、これらの値はMySQLに固有であるため、コード内のどこにも「y」または「n」を使用していないことを確認してください。

更新:上記のいずれかを実行する前に、このhttp://devcenter.heroku.com/articles/database#common_issues_migrating_to_postgresqlを確認してください。

于 2011-08-23T15:29:49.737 に答える