Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
如何将MySQL中的布尔字段迁移到Heroku中的PostgreSQL?_Mysql_Ruby On Rails 3_Postgresql_Heroku_Rails Postgresql - Fatal编程技术网

如何将MySQL中的布尔字段迁移到Heroku中的PostgreSQL?

如何将MySQL中的布尔字段迁移到Heroku中的PostgreSQL?,mysql,ruby-on-rails-3,postgresql,heroku,rails-postgresql,Mysql,Ruby On Rails 3,Postgresql,Heroku,Rails Postgresql,我有一个应用程序,在本地机器上运行MySQL。在Rails中有一个我定义为布尔值的字段,它在MySQL的0或1中表示 我现在正在尝试迁移到Heroku,它正在使用PostgreSQL。将代码和数据库推送到Heroku后,应用程序无法运行 有一条错误消息 ActiveRecord::StatementInvalid (PGError: ERROR: operator does not exist: boolean = integer 我怎样才能修好它 谢谢大家。这是因为MySQL使用TinyI

我有一个应用程序,在本地机器上运行MySQL。在Rails中有一个我定义为布尔值的字段,它在MySQL的0或1中表示

我现在正在尝试迁移到Heroku,它正在使用PostgreSQL。将代码和数据库推送到Heroku后,应用程序无法运行

有一条错误消息

ActiveRecord::StatementInvalid (PGError: ERROR:  operator does not exist: boolean = integer
我怎样才能修好它


谢谢大家。

这是因为MySQL使用TinyInt(1)来存储布尔属性,而PostgreSQL具有本机布尔类型

最好使用像这样的迁移工具

负责处理这些问题

设置本地postgres数据库。从MySQL迁移到本地Postgres数据库。然后使用轻触键从本地postgres DB推送到Heroku

另外,请确保代码中没有使用“y”或“n”,因为这些值是特定于MySQL的


更新:在您执行上述任何操作之前,请查看这篇文章,这是因为MySQL使用TinyInt(1)来存储布尔属性,而PostgreSQL具有本机布尔类型

最好使用像这样的迁移工具

负责处理这些问题

设置本地postgres数据库。从MySQL迁移到本地Postgres数据库。然后使用轻触键从本地postgres DB推送到Heroku

另外,请确保代码中没有使用“y”或“n”,因为这些值是特定于MySQL的


更新:在执行上述任何操作之前,请查看此

感谢您的快速响应。有什么方法我不需要在本地机器上安装另一个数据库吗?!请检查使用插值条件表单(如链接中所述)是否解决了您的问题MySQL从5.0.3开始就有真位字段用于MyISAM,5.05用于innodb和其他一些引擎。谢谢dexter。我在条件中犯了一个错误,在检查布尔字段时使用1而不是true。我的问题解决了。:)谢谢你的快速回复。有什么方法我不需要在本地机器上安装另一个数据库吗?!请检查使用插值条件表单(如链接中所述)是否解决了您的问题MySQL从5.0.3开始就有真位字段用于MyISAM,5.05用于innodb和其他一些引擎。谢谢dexter。我在条件中犯了一个错误,在检查布尔字段时使用1而不是true。我的问题解决了。:)