Ruby on rails Can';t修复rails错误PG::StringDataRightTruncation:错误:值太长,无法更改类型字符(255)
我对rails不是非常熟悉,所以如果可能的话,我希望能有一些真正简单的答案 我得到了PG::StringDataRightTruncation:ERROR:值太长,不适合类型字符变化(255)错误。我在网上读到,解决方案是创建一个迁移文件,并将字段设置为:text,然后:limit=>nil 以下是我采取的步骤: 1.Rails-g迁移 2.使用以下代码编辑迁移文件:Ruby on rails Can';t修复rails错误PG::StringDataRightTruncation:错误:值太长,无法更改类型字符(255),ruby-on-rails,ruby,Ruby On Rails,Ruby,我对rails不是非常熟悉,所以如果可能的话,我希望能有一些真正简单的答案 我得到了PG::StringDataRightTruncation:ERROR:值太长,不适合类型字符变化(255)错误。我在网上读到,解决方案是创建一个迁移文件,并将字段设置为:text,然后:limit=>nil 以下是我采取的步骤: 1.Rails-g迁移 2.使用以下代码编辑迁移文件: def up change_column :applications, :address, :text, :limit
def up
change_column :applications, :address, :text, :limit => nil
change_column :applications, :mortAddress, :text, :limit => nil
change_column :applications, :employer, :text, :limit => nil
change_column :applications, :title, :text, :limit => nil
change_column :applications, :empAddress, :text, :limit => nil
change_column :applications, :coAddress, :text, :limit => nil
change_column :applications, :coTitle, :text, :limit => nil
change_column :applications, :coEmpAddress, :text, :limit => nil
change_column :applications, :rrsp, :text, :limit => nil
change_column :applications, :nonrrsp, :text, :limit => nil
change_column :applications, :otherAssets, :text
end
def down
change_column :applications, :address, :string
change_column :applications, :mortAddress, :string
change_column :applications, :employer, :string
change_column :applications, :title, :string
change_column :applications, :empAddress, :string
change_column :applications, :coAddress, :string
change_column :applications, :coTitle, :string
change_column :applications, :coEmpAddress, :string
change_column :applications, :rrsp, :string
change_column :applications, :nonrrsp, :string
change_column :applications, :otherAssets, :string
end
end
类ChangeColumnTypeclass ChangeColumnType < ActiveRecord::Migration
def up
execute 'ALTER TABLE applications ALTER COLUMN address TYPE text USING (address::text)'
execute 'ALTER TABLE applications ALTER COLUMN mortAddress TYPE text USING (mortAddress::text)'
execute 'ALTER TABLE applications ALTER COLUMN employer TYPE text USING (employer::text)'
execute 'ALTER TABLE applications ALTER COLUMN title TYPE text USING (title::text)'
execute 'ALTER TABLE applications ALTER COLUMN empAddress TYPE text USING (empAddress::text)'
execute 'ALTER TABLE applications ALTER COLUMN coAddress TYPE text USING (coAddress::text)'
execute 'ALTER TABLE applications ALTER COLUMN coTitle TYPE text USING (coTitle::text)'
execute 'ALTER TABLE applications ALTER COLUMN coEmpAddress TYPE text USING (coEmpAddress::text)'
execute 'ALTER TABLE applications ALTER COLUMN rrsp TYPE text USING (rrsp::text)'
execute 'ALTER TABLE applications ALTER COLUMN nonrrsp TYPE text USING (nonrrsp::text)'
execute 'ALTER TABLE applications ALTER COLUMN otherAssets TYPE text USING (otherAssets::text)'
end
def down
execute 'ALTER TABLE applications ALTER COLUMN address TYPE string USING (address::string)'
execute 'ALTER TABLE applications ALTER COLUMN mortAddress TYPE string USING (mortAddress::string)'
execute 'ALTER TABLE applications ALTER COLUMN employer TYPE string USING (employer::string)'
execute 'ALTER TABLE applications ALTER COLUMN title TYPE string USING (title::string)'
execute 'ALTER TABLE applications ALTER COLUMN empAddress TYPE string USING (empAddress::string)'
execute 'ALTER TABLE applications ALTER COLUMN coAddress TYPE string USING (coAddress::string)'
execute 'ALTER TABLE applications ALTER COLUMN coTitle TYPE string USING (coTitle::string)'
execute 'ALTER TABLE applications ALTER COLUMN coEmpAddress TYPE string USING (coEmpAddress::string)'
execute 'ALTER TABLE applications ALTER COLUMN rrsp TYPE string USING (rrsp::string)'
execute 'ALTER TABLE applications ALTER COLUMN nonrrsp TYPE string USING (nonrrsp::string)'
execute 'ALTER TABLE applications ALTER COLUMN otherAssets TYPE string USING (otherAssets::string)'
end
end
定义
执行“使用(地址::文本)更改表应用程序更改列地址类型文本”
使用(mortAddress::text)执行“ALTER TABLE applications ALTER COLUMN mortAddress TYPE text”
执行“使用(雇主::文本)更改表格应用程序更改列雇主类型文本”
执行“使用(title::text)”更改表格应用程序更改列标题类型文本”
执行“ALTER TABLE applications ALTER COLUMN EMPADRESS TYPE text USING(EMPADRESS::text)”命令
执行“ALTER TABLE applications ALTER coAddress TYPE text USING(coAddress::text)”命令
执行“ALTER TABLE applications ALTER coTitle TYPE text USING(coTitle::text)”命令
执行“ALTER TABLE applications ALTER coEmpAddress TYPE text USING(coEmpAddress::text)”命令
执行“使用(rrsp::text)更改表格应用程序更改列rrsp类型文本”
执行“ALTER TABLE applications ALTER COLUMN NONRSP TYPE text USING(NONRSP::text)”命令
执行“使用(otherAssets::text)更改表格应用程序更改列otherAssets类型文本”
结束
降下
执行“使用(地址::字符串)更改表应用程序更改列地址类型字符串”
使用(mortAddress::string)执行“ALTER TABLE applications ALTER COLUMN mortAddress TYPE string”
执行“使用(雇主::字符串)更改表格应用程序更改列雇主类型字符串”
执行“使用(title::string)”更改表格应用程序更改列标题类型字符串”
执行“ALTER TABLE applications ALTER COLUMN EMPADRESS TYPE string USING(EMPADRESS::string)”命令
执行“ALTER TABLE applications ALTER coAddress TYPE string USING(coAddress::string)”命令
执行“ALTER TABLE applications ALTER coTitle TYPE string USING(coTitle::string)”命令
执行“ALTER TABLE applications ALTER coEmpAddress TYPE string USING(coEmpAddress::string)”命令
执行“ALTER TABLE applications ALTER COLUMN rrsp TYPE string USING(rrsp::string)”命令
执行“使用(nonrrsp::string)更改表应用程序更改列nonrrsp类型字符串”
使用(otherAssets::string)执行“ALTER TABLE应用程序ALTER列otherAssets类型字符串”
结束
结束
谢谢大家。我知道问题出在哪里了。我没有运行heroku运行db:migrate
问题解决了 您可以发布错误消息吗?您是否正在修改和检查同一个数据库?例如,开发
,或测试
?作为旁白,我建议不要使用“应用程序”或“应用程序”作为模型、变量或列名。