我想使用Rails更改数据库中几个列的数据类型。 我尝试了以下代码,但出现错误“G :: DuplicateColumn:ERROR:关系“ town_health_records”的列“地理”已经存在”
我尝试创建一个新的迁移文件并运行以下 rake db:migrate命令:
我尝试创建一个新的迁移文件并运行以下 rake db:migrate命令:
class UpdateColumns < ActiveRecord::Migration
def change
change_table :town_health_records do |t|
t.string :geography
t.string :total_pop_year_2005
t.string :age_0_19_year_2005
t.string :age_65_up_year_2005
t.string :per_capita_income_year_2000
t.string :persons_below_200pct_poverty_yr_2000
t.float :pct_all_persons_below_200pct_poverty_year_2000
t.float :pct_adequacy_prenatal_care_kotelchuck
t.float :pct_c_sections_2005_2008
t.integer :num_infant_deaths_2005_2008
t.float :infant_mortality_rate_2005_2008
t.float :pct_low_birthweight_2005_2008
t.float :pct_multiple_births_2005_2008
t.float :pct_publicly_financed_prenatal_care_2005_2008
t.float :pct_teen_births_2005_2008
t.timestamps
end
end
end
我只需要将以下列的数据类型更改为字符串:
:total_pop_year_2005
:age_0_19_year_2005
:age_65_up_year_2005
:per_capita_income_year_2000
:persons_below_200pct_poverty_yr_2000
:string
,并只使用:text
(除非您有一个在数据库中限制字段大小的好理由)。varchar(n)
基本上是text
的略微更昂贵的版本,它具有大小限制,而您显然不关心,因为您没有任何:limit
。 - mu is too short