Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将Postgres从9.3升级到9.6更改了列的类型';s的默认值_Ruby On Rails_Postgresql - Fatal编程技术网

Ruby on rails 将Postgres从9.3升级到9.6更改了列的类型';s的默认值

Ruby on rails 将Postgres从9.3升级到9.6更改了列的类型';s的默认值,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我正在将我的申请从Postgres 9.3升级到9.6。对于开发环境,我卸载了9.3并安装了9.6.2,然后导入了我的数据库。因为这是一个Rails应用程序,所以我有一个db/structure.sql——在运行迁移之后,我注意到这个文件中有一些不同之处。具体来说,一些列的默认值从类型字符变化变为类型文本(但是列类型本身没有变化): -奖励跟踪者\类型字符变化默认“奖励跟踪者”:字符变化, +奖励\跟踪器\类型字符变化默认“奖励\跟踪器”::文本, 我猜这是因为默认值的长度是已知的,但希望不进

我正在将我的申请从Postgres 9.3升级到9.6。对于开发环境,我卸载了9.3并安装了9.6.2,然后导入了我的数据库。因为这是一个Rails应用程序,所以我有一个
db/structure.sql
——在运行迁移之后,我注意到这个文件中有一些不同之处。具体来说,一些列的
默认值
从类型
字符变化
变为类型
文本
(但是列类型本身没有变化):

-奖励跟踪者\类型字符变化默认“奖励跟踪者”:字符变化,
+奖励\跟踪器\类型字符变化默认“奖励\跟踪器”::文本,


我猜这是因为默认值的长度是已知的,但希望不进行猜测。

我只是使用
pg_dump
psql
手动尝试了此操作,我无法观察到这种行为。你到底是如何升级数据库的?然而,这并不重要,因为在PostgreSQL中,
text
character variable
实际上是一样的。我们使用
pg_dump
pg_restore
——这个答案表明它们基本上是可以互换的:我只是用
pg_dump
psql
手动尝试了这个方法,我无法观察到这种行为。你到底是如何升级数据库的?然而,这并不重要,因为在PostgreSQL中,
文本
字符变化
实际上是一样的。我们使用的是
pg_dump
pg_restore
——这个答案表明它们基本上是可互换的: