How to delete migration files in Rails 3

2019-01-16 01:06发布

I would like to remove/delete a migration file. How would I go about doing that? I know there are similar questions on here but as an update, is there a better way than doing script/destroy?

Also, should I do a db:reset or db:drop if I remove/delete a migration?

8条回答
做自己的国王
2楼-- · 2019-01-16 01:34

Another way to delete the migration:

$ rails d migration SameMigrationNameAsUsedToGenerate

Use it before rake db:migrate is executed because changes in database will stay forever :) - or remove changes manually

查看更多
走好不送
3楼-- · 2019-01-16 01:39

Sometimes I found myself deleting the migration file and then deleting the corresponding entry on the table schema_migrations from the database. Not pretty but it works.

查看更多
爱情/是我丢掉的垃圾
4楼-- · 2019-01-16 01:41

I usually:

  1. Perform a rake db:migrate VERSION=XXX on all environments, to the version before the one I want to delete.
  2. Delete the migration file manually.
  3. If there are pending migrations (i.e., the migration I removed was not the last one), I just perform a new rake db:migrate again.

If your application is already on production or staging, it's safer to just write another migration that destroys your table or columns.

Another great reference for migrations is: http://guides.rubyonrails.org/migrations.html

查看更多
对你真心纯属浪费
5楼-- · 2019-01-16 01:45

Run below commands from app's home directory:

  1. rake db:migrate:down VERSION="20140311142212" (here version is the timestamp prepended by rails when migration was created. This action will revert DB changes due to this migration)

  2. Run "rails destroy migration migration_name" (migration_name is the one use chose while creating migration. Remove "timestamp_" from your migration file name to get it)

查看更多
爱情/是我丢掉的垃圾
6楼-- · 2019-01-16 01:51

We can also down migration as

rake db:migrate:down VERSION=versionnumber

Refer Rubyonrailsguide

查看更多
叛逆
7楼-- · 2019-01-16 01:54

We can use,

$ rails d migration table_name  

Which will delete the migration.

查看更多
登录 后发表回答