Cap*_*arl 39 truncate ruby-on-rails rails-console ruby-on-rails-3
我有这个测试数据库,到现在为止,它充满了垃圾.现在我在rails控制台中完成了一些Table.destroy_all命令,这些命令删除了很棒的所有记录和依赖项.然而; 我想截断所有内容,以便ID等等再次从1开始.在Rails 3中有什么办法吗?
Rav*_*aju 132
只有在需要重新创建整个数据库时,才能使用已接受的答案.
要删除单个表(使用回调)并从1开始获取ID:
Model.destroy_all # Only necessary if you want to trigger callbacks.
ActiveRecord::Base.connection.execute("TRUNCATE #{table_name} RESTART IDENTITY")
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Sqlite,则它不支持截断,请执行以下操作:
Model.destroy_all # Only necessary if you want to trigger callbacks.
ActiveRecord::Base.connection.execute("Delete from #{table_name}")
ActiveRecord::Base.connection.execute("DELETE FROM SQLITE_SEQUENCE WHERE name='#{table_name}'")
Run Code Online (Sandbox Code Playgroud)
小智 8
Rails 6.0+ 添加新方法:truncate_tables
ActiveRecord::Base.connection.truncate_tables([:table1_name, :table2_name])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32388 次 |
| 最近记录: |