gpt4 book ai didi

mysql - 在 ruby​​ 项目中将 mysql 更改为 postgresql 的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-29 21:40:42 25 4
gpt4 key购买 nike

抱歉,我是一名新的 ruby​​ 程序员。我有一个使用MySql数据库结构的项目,我想将MysqlDB更改为PostgreSQL。是否可以做到这一点,如果可以的话如何..?

这是什么,如果我必须更改database.yml并更改此特定文件,当我运行rake db:createrake db:migrate时将毫无问题地工作..

我已经改用 PostgreSQL 了。当我运行 rake db:create 时,我没有收到任何错误,但是当我运行 rake db:migrate 时,我收到以下错误:

rake db:migrate
== 20151021060955 CreatePackages: migrating ===================================
-- create_table(:packages)
-> 0.0079s
-- execute("ALTER TABLE packages AUTO_INCREMENT = 100000")
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

"PG::SyntaxError: ERROR: syntax error at or near "AUTO_INCREMENT"
LINE 1: ALTER TABLE packages AUTO_INCREMENT = 100000"

问题是,AUTO_INCRMENT是在mysql中,我也想在postgresql中执行AUTO_INCRMENT。这是我正在使用的迁移包类:

class CreatePackages < ActiveRecord::Migration
def change
create_table :packages do |t|
t.string :name
t.decimal :total
t.attachment :avatar

t.timestamps
end
execute("ALTER TABLE packages AUTO_INCREMENT = 100000")
end
end

如何使用 PostgreSQL 做同样的事情?

最佳答案

使用仅由 mysql 使用的 AUTO_INCRMENT 进行迁移,而不使用 pg 替代 AUTO_INCRMENT 来查看迁移问题> 是 pg 中的 SERIAL,因此您可以将 execute("ALTER TABLE packages AUTO_INCRMENT = 100000") 替换为 execute("SELECT setval ('packages _id_seq', 100000)") 在您的迁移文件中应该可以工作。

关于mysql - 在 ruby​​ 项目中将 mysql 更改为 postgresql 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551474/

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