ローカルはsqlite3で、本番環境ではpostgresを使って開発しているのですが、ローカルでは問題なく動くのですが、heroku run rails db:migrateをするとPG::DatatypeMismatch: ERROR:が出ます。最初string型だったbirthdateを、change_columnでdate型にしたのですがこれがダメみたいです。
ターミナル
rails aborted! StandardError: An error has occurred, this and all later migrations canceled: PG::DatatypeMismatch: ERROR: column "birth_date" cannot be cast automatically to type date HINT: You might need to specify "USING birth_date::date". : ALTER TABLE "contracts" ALTER COLUMN "birth_date" TYPE date /app/vendor/bundle/ruby/2.5.0/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `async_exec' /app/vendor/bundle/ruby/2.5.0/gems/activerecord-5.1.7/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `block (2 levels) in execute' /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
20190630041826_change_data_birthdate_to_contracts.rbマイグレーションファイル
class ChangeDataBirthdateToContracts < ActiveRecord::Migration[5.1] def change change_column :contracts, :birth_date, :date end end
そこで質問なのですが、マイグレーションファイルを全削除して新しくschema.rbの中身をコピーして作り直すことって可能でしょうか?migrationの履歴が汚れてしまっているので綺麗にしたいです。
rails db:reset やrails db:migrate:reset はレコードを削除するだけなので僕の期待通りには動きませんよね?
また、これをやってよいとしたら、全てのマイグレーションファイルのstatusをdownさせる方法なども知りたいです。よろしくお願いします。
rails5.1.7 ruby2.5.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/22 15:12