gpt4 book ai didi

Mysql2::错误:表已经存在

转载 作者:行者123 更新时间:2023-11-28 23:35:24 24 4
gpt4 key购买 nike

我有一些迁移需要运行。但是当我 rake db:migrate 时,会发生以下错误。

Mysql2::错误:表已存在

这种情况会发生 4-5 次,因为表已经存在,但 schema_migrations 表似乎与应用程序不同步。

我的数据库中有一个生产转储,我不想删除表和丢失数据。我目前正在做的是修改 schema_migrations 表并在其中手动添加这些冲突的迁移编号,然后再次运行 rake db:migrate 直到错误消失,然后我的新迁移开始运行。但这似乎不对。

除了我提到的不涉及删除数据库或丢失数据的解决方案之外,还有其他可行的解决方案吗?

最佳答案

对于此类迁移,您可以在迁移中使用创建表之前检查 table_exists

class Migrationclassname < ActiveRecord::Migration
def up
if table_exists?(:table_name)
# Some changed if required
else
# create table
end
end

def down
end
end

关于Mysql2::错误:表已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885395/

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