我在模型中有一个名为" 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
我希望更改其中一列,即使用小数(16,2)。
所以我创建了一个迁移文件,并在更改功能中添加了这些行。
change_column :*_bank_transaction_logs, :credit, :decimal, :precision => 16, :scale => 2
这不起作用。
语法错误(rake aborted! 语法错误:/Users/seokhoonlee/Desktop/db/migrate/20160607080159_increase_rest_decimal_precision.rb:81:语法错误,意外的tIDENTIFIER,期待keyword_end ... column:* _ bank_transaction_logs,:debit,:decimal,:precisio ...)
change_column :base_transaction_logs, :credit, :decimal, :precision => 16, :scale => 2
这也不起作用。
名称错误(Mysql2 ::错误:表' development.base_transaction_logs'不存在)
当表是基表(?,我不知道这样的术语存在)或其表名包含*?
时,如何在数据库中迁移表?答案 0 :(得分:0)
使用通配符来子类化Active Record但没有DB支持(它在数据库中不存在)。
因此,它无法在数据库中找到合适的表。
对于我的情况,我必须通过迁移任何包含bank_transaction_logs的文件(例如ABC_bank_transaction_logs)来处理* _bank_transaction_logs。