Fla*_*viu 179
很多人(像我一样)来这里找到如何删除表中的所有数据.干得好:
$ rails console
> ModelName.delete_all
Run Code Online (Sandbox Code Playgroud)
要么
> ModelName.destroy_all
Run Code Online (Sandbox Code Playgroud)
destroy_all检查依赖关系和回调,并且需要更长的时间.delete_all是一个直接的SQL查询.
更多信息:http://apidock.com/rails/ActiveRecord/Base/delete_all/class
Mel*_*emi 42
我一直在使用rails console中的以下内容删除表中的所有内容,然后重置索引计数器(Ruby 2和Rails 4):
> ModelName.delete_all
> ActiveRecord::Base.connection.reset_pk_sequence!('plural_model_name')
Run Code Online (Sandbox Code Playgroud)
Ric*_*ick 26
要在SQLite中重置索引/主键,只需键入:
$ rails console
> ActiveRecord::Base.connection.execute("DELETE from sqlite_sequence where name = 'yourtablename'")
Run Code Online (Sandbox Code Playgroud)
van*_*san 18
@ khelll的链接很有帮助.要截断一个表的命令是:
ActiveRecord::Base.connection.execute("TRUNCATE #{table_name}")
Run Code Online (Sandbox Code Playgroud)
Bor*_*aMa 12
从Rails 4.2开始,您可以truncate直接在ActiveRecord连接上使用:
ActiveRecord::Base.connection.truncate(:table_name)
Run Code Online (Sandbox Code Playgroud)
这将擦除所有数据并重置表中的自动增量计数器.在MySQL和Postgres的作品,不 SQLite中工作.
kik*_*ito 10
添加gem 'database_cleaner'到您的Gemfile,运行$ bundle install,然后:
> DatabaseCleaner.clean_with(:truncation, :only => ['yourtablename'])
Run Code Online (Sandbox Code Playgroud)
您可以指定更多表:
> DatabaseCleaner.clean_with(:truncation, :only => ['table1', 'table2', 'table3'])
Run Code Online (Sandbox Code Playgroud)
如果保留最后一个参数,它将截断整个数据库:
> DatabaseCleaner.clean_with(:truncation) # your database is truncated
Run Code Online (Sandbox Code Playgroud)
我正在使用Rails 4.2.0和Sqlite3
这对我有用(从上面的所有内容中得到一点):
$ rails c
> ModelName.delete_all
> ActiveRecord::Base.connection.execute("DELETE from sqlite_sequence where name = 'table_name'")
Run Code Online (Sandbox Code Playgroud)
然后我能够将新记录添加到我的表中,索引从1开始
| 归档时间: |
|
| 查看次数: |
60177 次 |
| 最近记录: |