Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 Rails从从属服务器而不是从主服务器获取db模式_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails Rails从从属服务器而不是从主服务器获取db模式

Ruby on rails Rails从从属服务器而不是从主服务器获取db模式,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,目前我有以下配置: Rails版本:Rails(3.2.9) ActiveRecord版本:ActiveRecord(3.2.9) 我为MySQL数据库配置了一个主/从数据库。 主/从配置通过八达通gem维护 问题: 主设备和从设备的结构不同。Slave有两个额外的列,而Master上没有。 在插入过程中,rails创建的insert语句也包含来自slave的两个额外列,MySQL无法进行此插入,因为这两列在Master中不存在 请提供帮助。在迁移文件中,是否使用(:shard_name)添加了

目前我有以下配置:

Rails版本:Rails(3.2.9) ActiveRecord版本:ActiveRecord(3.2.9) 我为MySQL数据库配置了一个主/从数据库。 主/从配置通过八达通gem维护

问题: 主设备和从设备的结构不同。Slave有两个额外的列,而Master上没有。 在插入过程中,rails创建的insert语句也包含来自slave的两个额外列,MySQL无法进行此插入,因为这两列在Master中不存在


请提供帮助。

在迁移文件中,是否使用(:shard_name)添加了?为了更好地理解,还需要添加代码行。我们直接通过MySQL来实现这一点。知道ActiveRecord从哪里获得架构以形成insert语句吗。我认为问题只在于此。您是否运行过rake octopus:copy\u schema\u版本的schema?如果是,它将在shard数据库中生成两个不同的模式。不,我没有运行任何rake任务。唯一已经做的事情是在从属数据库中添加了2个新列(通过MySQL alters手动添加),这在主数据库中是不存在的。检查您的数据库是否有两个迁移文件?如果没有,您可以运行rake octopus:copy\u schema\u schema版本。在迁移文件中是否使用(:shard\u name)添加了?为了更好地理解,还需要添加代码行。我们直接通过MySQL来实现这一点。知道ActiveRecord从哪里获得架构以形成insert语句吗。我认为问题只在于此。您是否运行过rake octopus:copy\u schema\u版本的schema?如果是,它将在shard数据库中生成两个不同的模式。不,我没有运行任何rake任务。唯一已经做的事情是在从属数据库中添加了2个新列(通过MySQL alters手动添加),这在主数据库中是不存在的。检查您的数据库是否有两个迁移文件?如果没有,您可以运行rake octopus:copy\u schema\u schema版本。