2012-11-23 13 views
9

Có thể gọi tệp .sql trong lớp di chuyển không?Có thể gọi một tệp .sql trong một di trú học thuyết không?

Tôi không thể tìm thấy bất kỳ nội dung nào về chủ đề đó.

+1

Tôi không nghĩ bạn có thể. Bạn nên khởi chạy nó sau khi di chuyển của bạn. Những gì có chứa tập tin sql này? – j0k

+1

nó tạo ra các thủ tục lưu trữ và khung nhìn và nó được tạo động – Hyperkubus

Trả lời

11

Có, chỉ cần đặt tệp .sql đó và tham chiếu từ lớp di chuyển của bạn.

$this->addSql(file_get_contents(__DIR__ . '/sql-dump.sql')); 
+1

Điều này có đề cập đến Doctrine 1.2 không? Tôi không thể tìm thấy tùy chọn này:/ –

+1

Điều gì sẽ xảy ra nếu SQL chứa một số truy vấn được chia cho dấu chấm phẩy? –

+0

^Nó hoạt động với nhiều truy vấn được phân tách bằng dấu chấm phẩy trong tệp SQL đi kèm (ít nhất là trong Symfony 3.x; hầu hết có thể hoạt động trong Symfony 2.8+ ... chỉ cần thử nghiệm nó ra). – Sawant

0

Tôi biết đó là một câu hỏi cũ, nhưng nó vẫn là đòn thực sự duy nhất khi tôi googled cho nó. Câu trả lời trên có thể được cải thiện một chút. Đó là một điều đơn giản, nhưng bạn có thể không nghĩ về nó. Nếu bạn có tệp sql chứa nhiều truy vấn chia cho dấu chấm phẩy, bạn có thể phát nổ nội dung trên dấu chấm phẩy.

<?php 

foreach (explode(';', file_get_contents(__DIR__ . '/sql-dump.sql')) as $sql) { 
    $this->addSql($sql); 
} 
+1

Điều gì sẽ xảy ra nếu có ';' truy vấn sql bên trong? Nó có thể không an toàn. Có thể là "; \ n" sẽ tốt hơn. – luchaninov

+0

Không cần điều này, vì điều này ('$ this-> addSql (file_get_contents (__ DIR__. '/sql-dump.sql'));') hoạt động trong trường hợp có nhiều truy vấn được phân tách bằng dấu chấm phẩy. – Sawant

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