【发布时间】:2014-07-10 08:47:30
【问题描述】:
我正在 Rails 中设置我的生产数据库。开发使用 SQlite,生产使用 MySQL。
在迁移过程中,对于所有具有默认值的十进制列,我都收到 Invalid default value 错误。这是一个例子。
ActiveRecord::StatementInvalid: Mysql2::Error: Invalid default value for 'retail_markup': CREATE TABLE `defaults` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `company_id` int(11), `styles_number_of_items_per_row` int(11), `created_at` datetime, `updated_at` datetime, `retail_markup` decimal(2,2) DEFAULT '2.0', `commission_rate` smallint DEFAULT 15) ENGINE=InnoDB
数据库架构如下:
create_table "defaults", force: true do |t|
t.integer "company_id"
t.integer "styles_number_of_items_per_row"
t.datetime "created_at"
t.datetime "updated_at"
t.decimal "retail_markup", precision: 2, scale: 2, default: 2.0
t.integer "commission_rate", limit: 2, default: 15
end
我环顾四周,无法弄清楚这里出了什么问题。
提前非常感谢。
【问题讨论】:
标签: mysql ruby-on-rails sqlite rake dbmigrate