2013-08-25 16 views
6

Tôi đang gặp một số rào cản về Laravel 4.Laravel 4 di chuyển: rollback với --path về nghệ nhân CLI

Vì tôi không thể làm cho artisan:migrate tạo di cư từ các thư mục bên trong của app/database/migrations(ví dụ: ứng dụng/cơ sở dữ liệu/di cư/app1)

tôi có điều này trên lệnh tùy chỉnh của tôi app:migrate

/* default path */ 
$this->call('migrate'); 

/* custom path */ 
$this->call('migrate', array('--path' => 'app/database/migrations/app1')); 

nhưng tôi cũng muốn có một lệnh app:refresh mà sẽ rollback tất cả các mig khẩu phần từ đường dẫn tùy chỉnh rồi từ đường dẫn mặc định .. sau đó di chuyển và sắp xếp mọi thứ giống như những gì migrate:refresh --seed làm

làm cách nào để đảo ngược điều này? gọi:

$this->call('migrate:rollback', array('--path' => 'app/database/migrations/app1')); 

sẽ tạo ra một lỗi nói

[InvalidArgumentException] 
The "--path" option does not exist. 

có thể ai đó giúp đỡ xin vui lòng.

cảm ơn!

+0

Vâng, atm, có thực sự là không có cách nào. Chỉ tên tệp thực được lưu trữ trên cơ sở dữ liệu, không có đường dẫn của nó và không có tham số đường dẫn cho lệnh rollback. Bạn có thể, tất nhiên, thực hiện nó các tham số, nhưng đó sẽ là xấu khi bạn tình cờ đã chạy di chuyển từ nhiều đường dẫn. Tốt nhất có lẽ sẽ tìm thấy một cách để lưu trữ trong DB nơi mà đến từ, ngã ba repo và đề xuất thay đổi. – rmobis

+0

Nevermind, đã tìm ra. – rmobis

Trả lời

5

Tất cả những gì bạn phải làm là đảm bảo rằng các lớp di chuyển của bạn có thể được tự động tải. Cách dễ nhất để làm như vậy là để thêm đường dẫn đến thư mục mà bạn đang giữ họ composer.json 's autoload.classmap:

... 
"autoload": { 
    "classmap": [ 
     ... 
     "app/database/migrations/app1", 
    ] 
}, 
+0

. những công việc này! cảm ơn! – reikyoushin

-2

Bạn nên chạy lại di chuyển bằng tùy chọn "--path" theo cách thủ công trong trường hợp này.

+0

sẽ thả các bảng cũ, chèn lại chúng và tái hạt giống chúng một lần nữa? – reikyoushin

+0

Tôi đã kiểm tra và có, họ không xóa dữ liệu cũ khỏi DB trước khi bạn gieo hạt lại .. – reikyoushin