2017-05-05 12 views
1

Postgresデータベーステーブルで、のような値を持つ既存のテキスト列post_idsがあります。テキストと配列の新しい列が追加されました。Railsの移行で配列列を別のテキスト列の値に更新する

PG::DatatypeMismatch: ERROR: column "post_ids_new" is of type text[] but expression is of type text 

You will need to rewrite or cast the expression. 

:新しい列の型がテキスト配列であるので、私はpost_idsからpost_ids_new

Page.update_all("post_ids_new = post_ids") 

にすべての値を移行しようとしている移行で

add_column :pages, :post_ids_new, :text, array: true, default: [] 

はこのエラーを得ましたこれらの値を移行する方法はありますか?

答えて

-1

コンソールでrails consoleを実行して、Page.update_all("post_ids_new = post_ids")を実行することができます。

またはアプリケーションがHerokuで実行されている場合は、heroku consoleでコンソールを実行できます。

あなたがあなたの本番環境でそれを行う前に、開発環境でコマンドをテストしたい場合は、あなたがpg_dump --clean database_name > database_backup_fileを実行しているとpsql database_name < database_backup_file

を実行して、バックアップを復元することにより、バックアップデータベースをすることができます
関連する問題