LoginSignup
0
1

More than 1 year has passed since last update.

【PostgreSQL】PG::DatatypeMismatch: ERRORの解消方法

Posted at

前提条件

  • Ruby 3.1.0
  • Rails 7.0.4
  • DB
    開発環境:SQLite
    本番環境:PostgreSQL

エラー事象

カラムの型をinteger型に変更しようと下記対応をしたところ、デプロイ時にPG::DatatypeMismatch: ERRORが発生した。

$ rails g migration change_data_age_to_user
$ rails db:migrate
migrationファイル
def change
  change_column :user, :age, :integer
end

原因

SQLiteとPostgreSQLでchange_columnの記述方法が異なるため。

解消方法

1. migrationファイルを修正

下記のようにUSING CAST句を付け加えて定義する。

migrationファイル
def change
  change_column :user, :age, 'integer USING CAST(user AS integer)' 
end

2. コミット~デプロイを再度実行

再度デプロイすると正常終了していることが確認できた。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1