gpt4 book ai didi

mysql - 迁移 Rails 基表,表名称包含 *

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

我在模型中有一条名为“base_transaction_log.rb”的事件记录。

它的架构信息是:

# Table name: *_bank_transaction_logs
#
# All bank transaction tables should have the same format.
#
# id :integer not null, primary key
# credit :decimal(8, 2)
# created_at :datetime not null
# updated_at :datetime not null

我希望更改其中一列,即credit,以使用decimal(16,2)。

所以我创建了一个迁移文件并在更改函数中添加了这些行。

change_column :*_bank_transaction_logs, :credit, :decimal, :precision => 16, :scale => 2

这不起作用。

语法错误(rake 中止!SyntaxError:/Users/seokhoonlee/Desktop/db/migrate/20160607080159_increase_rest_decimal_ precision.rb:81:语法错误,意外的 tIDENTIFIER,期待关键字_end...列:*_bank_transaction_logs、:借记、:小数、:精确...)

change_column :base_transaction_logs, :credit, :decimal, :precision => 16, :scale => 2

这也不起作用。

名称错误(Mysql2::Error:表“development.base_transaction_logs”不存在)

当数据库中的表是基表(?,我不知道有这样的术语存在)或者表名包含*时,如何迁移数据库中的表?

最佳答案

通配符的使用用于对 Active Record 进行子类化,但不受数据库支持(数据库中不存在它)。

因此,它无法在数据库中找到适当的表。

就我而言,我必须通过迁移包含bank_transaction_logs(例如ABC_bank_transaction_logs)的任何文件来处理*_bank_transaction_logs。

关于mysql - 迁移 Rails 基表,表名称包含 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37674956/

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