我在项目开始时创建了一个注释模型,但现在意识到我需要创建一些多态关系,以便我也可以将注释与许多其他模型一起使用。 考虑到我已经拥有的代码等,我认为从头开始可能更容易,这样我就可以以正确的方式为我的新多态世界构建所有视图/控制器等。
我看到我可以运行rails destroy model comments
来实现这一点,但我有两个问题:
- 这会删除模型、迁移和实际的数据库表吗?
- 当我想创建具有完全相同名称的新模型时,会产生什么影响?
为了完全删除所有列和迁移已创建的表需要运行:
rails db:migrate:down VERSION=012345678
(其中012345678应该是迁移的版本号(
.............................
rails destroy model Comments
将删除您的模型、待迁移、测试和夹具
所以销毁它与生成相反:
$ bin/rails destroy model Oops
invoke active_record
remove db/migrate/20120528062523_create_oops.rb
remove app/models/oops.rb
invoke test_unit
remove test/models/oops_test.rb
remove test/fixtures/oops.yml
而且,您现在可以创建一个具有相同名称的新模型,因为没有以前的痕迹:)
如果在创建模型后已迁移数据库:
首先,回滚对数据库所做的更改:
rake db:migrate:down VERSION=20100905201547
其中,版本是标识迁移的时间戳。例如,如果迁移文件名为 20170411182948_create_comments.rb,则应20170411182948
然后运行
rails destroy model comments
第一个命令将从实际数据库中删除该表。第二个命令将删除模型和迁移文件。请确保按该顺序运行它们,因为第一个命令依赖于迁移文件来执行回滚(在第二个命令期间删除(。
如果尚未迁移数据库:
该表不会添加到数据库中。您可以继续手动删除模型和迁移文件,也可以使用 destroy 命令。
您可能需要彻底删除该表。
运行这个:
sqlite3 db/development.sqlite3
然后:
sqlite> drop table table_name;
sqlite> .quit