2012-10-09 28 views
8

Tôi không nghĩ rằng tôi hiểu phạm vi của DBIx::Class
Tôi có phải tạo thủ công cơ sở dữ liệu với SQL thông thường trước không, sau đó sử dụng trình tải sơ đồ (hoặc mã thủ công lược đồ/kết quả)?
Hoặc có cách nào để yêu cầu DBIx::Class tiếp tục và tạo các bảng từ lược đồ được mã hóa theo cách thủ công và kết quả không?
Tôi hỏi b/c nếu tôi cần tạo cơ sở dữ liệu thông qua câu lệnh SQL CREATE TABLE, tôi có cột được nhân bản trong mã ResultSet, HOẶC tôi cần phải dựa vào bộ nạp schemaloader mà tôi giả định là không hiệu quả và không phù hợp cho sản xuất.Có thể DBIx :: Lớp được sử dụng để tạo bảng?

Trả lời

13

Bạn có thể deploy() schema của bạn:

my $schema = MyApp::Schema->connect(
      $dsn, 
      $user, 
      $password, 
     ); 
$schema->deploy({ add_drop_table => 1 }); 

Tất nhiên, ở trên sẽ thả bảng hiện tại của bạn :)

10

Bạn có thể đi một trong hai con đường. Bạn có thể tạo một lược đồ và nhận được DBIx::Class to analyse it hoặc bạn có thể nhận DBIx :: Class thành build the schema to you.

Trước đây không phải là không hiệu quả cho sản xuất, vì bạn có thể nhận được DBIx :: Class đến save the generated code để nó không phải thực hiện phân tích mỗi lần chạy.

Các vấn đề liên quan