Tôi đang phát triển một ứng dụng đa nhiệm sau this article. Vấn đề là khi tôi chạy tất cả các lần di chuyển lần đầu tiên. Trong schema.rb
tệp chỉ là các bảng cho lược đồ công khai nhưng những gì vui vẻ với các lược đồ khác? và làm thế nào tôi có thể tạo các lược đồ khác với cấu trúc khác với public
Tôi không muốn sử dụng đá quý.Sử dụng Postgres Multiple Schema Database trong Rails
Xem ví dụ dưới đây
Bảng được tạo ra cho schema nào
class CreatePerspectives < ActiveRecord::Migration
include MultiSchema
def up
with_in_schemas :only => :public do
# Create table perspectives
end
end
def down
with_in_schemas :only => :public do
drop_table :prespectives
end
end
end
Bảng được tạo ra cho schemas tin
class CreateObjectives < ActiveRecord::Migration
include MultiSchema
def change
with_in_schemas :except => :public do
# Create objectives table
end
end
end
schema.rb
ActiveRecord::Schema.define(version: 20130810172443) do
create_table "perspectives", force: true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
end
Tôi không hiểu tại sao bạn cần nhiều lược đồ? Bạn không thể sử dụng chỉ một và làm cho một số thông tin không thể tiếp cận được với người dùng dựa trên vai trò của họ? –
Tôi đã sử dụng và yêu mến Postgres trong nhiều năm và rất quen thuộc với các lược đồ và cách sử dụng của chúng. Tôi cũng là một nhà phát triển Rails. Điều đó nói rằng, tôi sẽ * không bao giờ * sử dụng cả hai cùng nhau trừ khi tôi phải làm vậy. Bạn không phải làm vậy. Đơn giản chỉ cần thiết kế bố trí dữ liệu của bạn (thông thường tôi sẽ gọi đây là "lược đồ" nhưng tôi không muốn gây nhầm lẫn vấn đề) và thêm một bảng khác gọi là "công ty" hoặc bất kỳ thứ gì sở hữu bản ghi. Sau đó cung cấp cho nó quyền sở hữu trong các bảng khác nhau. Tôi có một vài ứng dụng như thế này và nó không khó. –