gpt4 book ai didi

ruby-on-rails - 如何清除 Rails seed.rb 中的整个数据库

转载 作者:行者123 更新时间:2023-12-03 11:05:04 25 4
gpt4 key购买 nike

实现这一目标的最佳方法是什么?至于现在我正在使用:

Role.delete_all
User.delete_all
...

但是如何清除habtm talbes?喜欢角色_用户

更新答案

我认为 ream88 的回答最准确地回答了我的问题,但最好的想法可能是遵循 coreyward 的建议,使用单独的 rake 任务,并只将 seed.rb 用于播种数据。

这是 ream88 的更新答案,它不会删除 schema_migrations table 。
ActiveRecord::Base.establish_connection
ActiveRecord::Base.connection.tables.each do |table|
# MySQL
ActiveRecord::Base.connection.execute("TRUNCATE #{table}") unless table == "schema_migrations"

# SQLite
# ActiveRecord::Base.connection.execute("DELETE FROM #{table}") unless table == "schema_migrations"
end

非常感谢您的帮助!

最佳答案

我绝对同意@coreyward 的回答,但如果您真的想清除 seeds.rb 中的所有表格文件,这个片段将完成这项工作:

ActiveRecord::Base.establish_connection
ActiveRecord::Base.connection.tables.each do |table|
next if table == 'schema_migrations'

# MySQL and PostgreSQL
ActiveRecord::Base.connection.execute("TRUNCATE #{table}")

# SQLite
# ActiveRecord::Base.connection.execute("DELETE FROM #{table}")
end

关于ruby-on-rails - 如何清除 Rails seed.rb 中的整个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6985222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com