首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推送mysql到heroku关系错误

问推送mysql到heroku关系错误
EN

Stack Overflow用户
提问于 2012-09-13 11:14:11
回答 3查看 196关注 0票数 2

我正在尝试使用valkyrie将我的本地mysql数据库推送到heroku postgres数据库,如下所示:

代码语言:javascript
复制
valkyrie mysql://localhost/themedb postgres://DATABASE__COLOR_URL/here

它似乎开始运行得很好,但随后遇到了一个约束错误,我无法确定:

代码语言:javascript
复制
Transferring 17 tables:
auth_group:     100% |=========================================| Time: 00:00:02
auth_group_per: 100% |=========================================| Time: 00:00:00
auth_message:   100% |=========================================| Time: 00:00:00
auth_permissio: 100% |=========================================| Time: 00:00:02
auth_user:      100% |=========================================| Time: 00:00:00
auth_user_grou: 100% |=========================================| Time: 00:00:00
C:/Program Files (x86)/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/sequel-3.31.0/lib/sequel/adapters/postgre
s.rb:181:in `async_exec': PG::Error: ERROR:  relation "user_id" already exists(Sequel::DatabaseError)

我认为这些模型来自django.contrib.auth,我不明白为什么会有关系错误。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-16 04:55:31

这个问题已经在瓦尔基里解决了。以下是valkyrie source对此问题的解释

postgresql索引名称空间是针对每个表的,而不是针对每个数据库的,因此在

到postgresql的迁移中,可能会出现索引名称冲突。

还详细介绍了解决方案:

这段代码检查它是否来自mysql数据库,如果是,则确保尝试创建第二个同名idx不会导致迁移失败,而只是将索引重命名为prepend table name

请注意,gem install valkyrie不会安装“修复”版本。你必须从github获取最新的代码,它工作得很好。

票数 0
EN

Stack Overflow用户

发布于 2012-09-13 11:22:51

您确定目标数据库为空吗?该错误明确地告诉您,当您尝试创建user_id字段时,它已经存在。

票数 0
EN

Stack Overflow用户

发布于 2012-09-13 15:48:09

MySQL中的源数据是干净的吗?是否在您的MySQL数据库中检查约束,并且您正在使用InnoDB吗?

看起来你的dev数据库中可能有一个重复的条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12398928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档