3

在从属服务器上为在 postgreSQL 9.3.5 上运行 gem“ar-octopus”的 rails 3.2.18 应用程序生成以下错误

 ActiveRecord::StatementInvalid in Devise::SessionsController#create

PG::ReadOnlySqlTransaction: ERROR:  cannot execute UPDATE in a read-only transaction
: UPDATE "users" SET "last_sign_in_at"

shards.yml字段被定义为其从属

octopus:
  replicated: true
  fully_replicated: true
  environments:
    - development
    - production
  development:
    shards:
      slave1:
        adapter: postgresql
        host: slave_1_ip_address
        database: app_development
        username: my_user
        password: my_password

并且名义上应该从 database.yml 文件中识别主节点

development:
#  adapter: postgresql
  adapter: postgis
  database: app_development
  username: my_user
  schema_search_path: public

你会注意到适配器有两种形式:因为这个应用程序需要 postgis,所以 master 是用 postgis 定义的,我假设 slave 应该和查询一样需要它。尽管如此,两种形式都已尝试过,并且错误保持不变。

为什么章鱼没有做它声称的事情?

4

0 回答 0