PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Di chuyển đường ray cho các lược đồ postgreSQL

Tôi có một thư viện schema_utils mà tôi sử dụng và có phương pháp sau để xử lý việc di chuyển:

  def self.with_schema(schema_name, &block)
    conn = ActiveRecord::Base.connection
    old_schema_search_path = conn.schema_search_path
    conn.schema_search_path = schema_name
    begin
      yield
    ensure
      conn.schema_search_path = old_schema_search_path
    end
  end

Sau đó, tôi sử dụng di chuyển như bình thường để có thể tiếp tục gọi rake:migrateNow, trong di chuyển của mình, bạn có thể sử dụng:

...
schemas.each do |schema|
  SchemaUtils.with_schema(schema) do
    #Put migration code here
    #e.g. add_column :xyz, ...
  end
end

Bởi vì tôi có xu hướng ánh xạ lược đồ với mã tài khoản, tôi làm như sau:

Account.for_each do |account|
  SchemaUtils.with_schema(account.code) do
    #Put migration code here
  end
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để sử dụng kiểu nhập văn bản dưới dạng (các) tên cột trong hàm Postgres?

  2. Làm cách nào để thực hiện các truy vấn khi kết nối DB trong Rails?

  3. PostgreSQL CTE ghi lại dưới dạng các tham số để hoạt động

  4. Chủ đề đối tượng PQconn an toàn

  5. Cách giám sát PostgreSQL bằng Nagios