gpt4 book ai didi

mysql - 从 postgres 转换 Rails 数据库 -> mysql

转载 作者:行者123 更新时间:2023-11-29 09:04:03 24 4
gpt4 key购买 nike

我使用以下方法转换了数据库:

https://github.com/maxlapshin/mysql2postgres

乍一看似乎有效。表/列/索引位于 postgres 内部......太棒了。

但是,db:migrate 希望运行我的所有迁移。就好像 schema_migrations 表没有正确转换 - 或者没有记录。但它确实拥有所有记录,并且看起来与 mysql 中的相同。

该适配器或 postgres 适配器以其他方式跟踪迁移。

最佳答案

您确定您的 schema_migrations 表具有正确的架构吗?进入psql并执行以下操作:

> \d schema_migrations

你应该看到这个:

       Table "public.schema_migrations"
Column | Type | Modifiers
---------+------------------------+-----------
version | character varying(255) | not null
Indexes:
"unique_schema_migrations" UNIQUE, btree (version)

或者差不多。

如果看起来像这样,并且 db:migrate 仍然想要运行所有迁移,那么您可能在列值中存在一些杂散空格或类似的内容。您可以浪费更多时间尝试修复它,或者您可以手动重建它并继续进行更有趣的事件。来自psql:

> drop table schema_migrations;
> create table schema_migrations (
version varchar(255) not null,
constraint unique_schema_migrations unique (version)
);

然后从你的迁移目录(假设你使用的是 Unixy):

$ for m in *.rb; do printf "insert into schema_migrations (version) values ('%s');\n" $(echo $m | sed 's/_.*//');done | psql -h your_host -U your_user -d your_db

当然,您必须为 -h-U-d 开关提供正确的值。

关于mysql - 从 postgres 转换 Rails 数据库 -> mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631059/

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