错误:PG::FeatureNotSupported:错误:无法在DEFAULT表达式行1中使用列引用:..._at”timestamp,“total”decimal DEFAULT(COALESCE(price,(0)...
class AddTotalToOrderLines < ActiveRecord::Migration[6.1]
def up
execute <<~SQL
ALTER TABLE order_lines
ADD COLUMN total numeric GENERATED ALWAYS AS (COALESCE(price, 0) *
COALESCE(quantity, 0)) STORED;
SQL
end
2条答案
按热度按时间wribegjk1#
如果你觉得自己快疯了(或者一些谷歌人员发现了这一点),问题是如果你使用的是
schema.rb
,Rails会将GENERATED
列语句转换为DEFAULT
列语句。为了让它正常运行,您需要切换到structure.sql
方法。ui7jx7zq2#
也许你有另一个迁移实际上产生了错误。你在那里展示的那个不是:)