如何在运行时从Rails中删除、创建和迁移DB



我想在运行时使用ActiveRecord时放下并设置我的rails db。最好的方法是什么?我假设我需要放弃现有的连接,然后重新连接?

有没有人有这样做的经验,你能分享一下正确做这件事的步骤吗?

您可以很容易地使用这些命令rake db:drop, rake db:create, rake db:migrate,但这是您真正想要的吗?rake db:migrate db:reset和db:schema:load的区别

我没有太多的运气在运行时做典型的删除,创建,迁移,所以我使用了以下方法(由@David Aldridge建议):

connection ||= ActiveRecord::Base.connection
connection.tables.each do |t|
    connection.execute("TRUNCATE "#{t}" RESTART IDENTITY CASCADE") unless t == 'schema_migrations'
end

我应该首先提到我使用的是postgres。

我以前遇到的问题是,我被数据库中的索引约束阻塞了,但是使用CASCADE参数解决了这个问题。

CASCADE允许关联的表也被截断——本质上是绕过约束RESTART IDENTITY允许将表增量重置为0

最新更新