Chuỗi php như
Di chuyển giống như kiểm soát phiên bản cho cơ sở dữ liệu của bạn, cho phép nhóm của bạn xác định và chia sẻ định nghĩa lược đồ cơ sở dữ liệu của ứng dụng. Nếu bạn đã từng phải yêu cầu đồng đội thêm một cột vào lược đồ cơ sở dữ liệu cục bộ của họ theo cách thủ công sau khi lấy các thay đổi của bạn từ kiểm soát nguồn, thì bạn đã gặp phải vấn đề mà việc di chuyển cơ sở dữ liệu giải quyết được Show Mặt tiền 09 của Laravel cung cấp hỗ trợ cơ sở dữ liệu bất khả tri để tạo và thao tác các bảng trên tất cả các hệ thống cơ sở dữ liệu được hỗ trợ của Laravel. Thông thường, quá trình di chuyển sẽ sử dụng mặt tiền này để tạo và sửa đổi các bảng và cột cơ sở dữ liệuTạo MigrationBạn có thể sử dụng lệnh Artisan 10 để tạo di chuyển cơ sở dữ liệu. Di chuyển mới sẽ được đặt trong thư mục 11 của bạn. Mỗi tên tệp di chuyển chứa dấu thời gian cho phép Laravel xác định thứ tự di chuyển
Laravel sẽ sử dụng tên của quá trình di chuyển để cố gắng đoán tên của bảng và liệu quá trình di chuyển có tạo ra một bảng mới hay không. Nếu Laravel có thể xác định tên bảng từ tên di chuyển, Laravel sẽ điền trước vào tệp di chuyển đã tạo với bảng đã chỉ định. Nếu không, bạn chỉ cần chỉ định bảng trong tệp di chuyển theo cách thủ công Nếu bạn muốn chỉ định đường dẫn tùy chỉnh cho quá trình di chuyển đã tạo, bạn có thể sử dụng tùy chọn 12 khi thực hiện lệnh 10. Đường dẫn đã cho phải liên quan đến đường dẫn cơ sở của ứng dụng của bạn
Di chuyển đè bẹpKhi bạn xây dựng ứng dụng của mình, bạn có thể tích lũy ngày càng nhiều lần di chuyển theo thời gian. Điều này có thể dẫn đến thư mục 11 của bạn trở nên cồng kềnh với hàng trăm lần di chuyển. Nếu muốn, bạn có thể "bóp" các lần di chuyển của mình thành một tệp SQL duy nhất. Để bắt đầu, hãy thực hiện lệnh 15
Khi bạn thực hiện lệnh này, Laravel sẽ ghi một tệp "lược đồ" vào thư mục 16 của ứng dụng của bạn. Tên của tệp lược đồ sẽ tương ứng với kết nối cơ sở dữ liệu. Bây giờ, khi bạn cố gắng di chuyển cơ sở dữ liệu của mình và không có quá trình di chuyển nào khác được thực thi, trước tiên Laravel sẽ thực thi các câu lệnh SQL của tệp lược đồ của kết nối cơ sở dữ liệu mà bạn đang sử dụng. Sau khi thực thi các câu lệnh của tệp lược đồ, Laravel sẽ thực hiện mọi di chuyển còn lại không phải là một phần của kết xuất lược đồNếu các thử nghiệm của ứng dụng của bạn sử dụng một kết nối cơ sở dữ liệu khác với kết nối bạn thường sử dụng trong quá trình phát triển cục bộ, thì bạn nên đảm bảo rằng bạn đã kết xuất một tệp lược đồ bằng cách sử dụng kết nối cơ sở dữ liệu đó để các thử nghiệm của bạn có thể xây dựng cơ sở dữ liệu của bạn. Bạn có thể muốn làm điều này sau khi kết xuất kết nối cơ sở dữ liệu mà bạn thường sử dụng trong quá trình phát triển cục bộ 0Bạn nên cam kết tệp lược đồ cơ sở dữ liệu của mình để kiểm soát nguồn để các nhà phát triển mới khác trong nhóm của bạn có thể nhanh chóng tạo cấu trúc cơ sở dữ liệu ban đầu của ứng dụng của bạn
Cơ cấu di cưMột lớp di chuyển chứa hai phương thức. 17 và 18. Phương thức 17 được sử dụng để thêm các bảng, cột hoặc chỉ mục mới vào cơ sở dữ liệu của bạn, trong khi phương thức 18 sẽ đảo ngược các hoạt động được thực hiện bởi phương thức 17Trong cả hai phương pháp này, bạn có thể sử dụng trình tạo lược đồ Laravel để tạo và sửa đổi các bảng một cách rõ ràng. Để tìm hiểu về tất cả các phương pháp có sẵn trên trình tạo 09,. Ví dụ: quá trình di chuyển sau đây tạo bảng 23 8Đặt kết nối di chuyểnNếu quá trình di chuyển của bạn sẽ tương tác với một kết nối cơ sở dữ liệu khác với kết nối cơ sở dữ liệu mặc định của ứng dụng, thì bạn nên đặt thuộc tính 24 cho quá trình di chuyển của mình 0Di chuyển đang chạyĐể chạy tất cả các lần di chuyển chưa hoàn thành của bạn, hãy thực hiện lệnh Artisan 25Nếu bạn muốn xem những lần di chuyển nào đã chạy cho đến nay, bạn có thể sử dụng lệnh Artisan 26Nếu bạn muốn xem các câu lệnh SQL sẽ được thực hiện bởi quá trình di chuyển mà không thực sự chạy chúng, bạn có thể cung cấp cờ 27 cho lệnh 25 5Cô lập thực hiện MigrationNếu bạn đang triển khai ứng dụng của mình trên nhiều máy chủ và chạy di chuyển như một phần của quy trình triển khai, bạn có thể không muốn hai máy chủ cố gắng di chuyển cơ sở dữ liệu cùng một lúc. Để tránh điều này, bạn có thể sử dụng tùy chọn 29 khi gọi lệnh 25Khi tùy chọn 29 được cung cấp, Laravel sẽ nhận được một khóa nguyên tử bằng cách sử dụng trình điều khiển bộ đệm của ứng dụng của bạn trước khi cố gắng chạy quá trình di chuyển của bạn. Tất cả các nỗ lực khác để chạy lệnh 25 trong khi khóa đó được giữ sẽ không thực thi; 0
Buộc di chuyển để chạy trong sản xuấtMột số thao tác di chuyển mang tính phá hoại, có nghĩa là chúng có thể khiến bạn mất dữ liệu. Để bảo vệ bạn khỏi việc chạy các lệnh này đối với cơ sở dữ liệu sản xuất của mình, bạn sẽ được nhắc xác nhận trước khi các lệnh được thực thi. Để buộc các lệnh chạy mà không có dấu nhắc, hãy sử dụng cờ 39Quay lại di chuyểnĐể khôi phục hoạt động di chuyển mới nhất, bạn có thể sử dụng lệnh Artisan 40. Lệnh này khôi phục "đợt" di chuyển cuối cùng, có thể bao gồm nhiều tệp di chuyển 9Bạn có thể khôi phục một số lần di chuyển hạn chế bằng cách cung cấp tùy chọn 41 cho lệnh 40. Ví dụ: lệnh sau sẽ khôi phục năm lần di chuyển cuối cùng 2Lệnh 43 sẽ khôi phục tất cả các lần di chuyển của ứng dụng của bạnQuay lại & Di chuyển bằng một lệnh duy nhấtLệnh 44 sẽ khôi phục tất cả các lần di chuyển của bạn và sau đó thực hiện lệnh 25. Lệnh này tạo lại toàn bộ cơ sở dữ liệu của bạn một cách hiệu quả 6Bạn có thể khôi phục và di chuyển lại một số lần di chuyển hạn chế bằng cách cung cấp tùy chọn 41 cho lệnh 47. Ví dụ: lệnh sau sẽ khôi phục và di chuyển lại năm lần di chuyển cuối cùng 0Bỏ tất cả các bảng và di chuyểnLệnh 48 sẽ loại bỏ tất cả các bảng khỏi cơ sở dữ liệu và sau đó thực hiện lệnh 25 1
Những cái bànTạo bảngĐể tạo một bảng cơ sở dữ liệu mới, hãy sử dụng phương thức 51 trên mặt tiền 09. Phương thức 51 chấp nhận hai đối số. cái đầu tiên là tên của bảng, trong khi cái thứ hai là một bao đóng nhận một đối tượng 54 có thể được sử dụng để xác định bảng mới 2Khi tạo bảng, bạn có thể sử dụng bất kỳ trình tạo lược đồ nào để xác định các cột của bảng Kiểm tra sự tồn tại của bảng/cộtBạn có thể kiểm tra sự tồn tại của một bảng hoặc cột bằng phương pháp 55 và 56 3Kết nối cơ sở dữ liệu & Tùy chọn bảngNếu bạn muốn thực hiện thao tác lược đồ trên kết nối cơ sở dữ liệu không phải là kết nối mặc định của ứng dụng của bạn, hãy sử dụng phương thức 57 4Ngoài ra, một vài thuộc tính và phương thức khác có thể được sử dụng để xác định các khía cạnh khác của việc tạo bảng. Thuộc tính 58 có thể được sử dụng để chỉ định công cụ lưu trữ của bảng khi sử dụng MySQL 5Các thuộc tính 59 và 60 có thể được sử dụng để chỉ định bộ ký tự và đối chiếu cho bảng đã tạo khi sử dụng MySQL 6Phương pháp 61 có thể được sử dụng để chỉ ra rằng bảng phải là "tạm thời". Các bảng tạm thời chỉ hiển thị với phiên cơ sở dữ liệu của kết nối hiện tại và tự động bị hủy khi đóng kết nối 7Nếu bạn muốn thêm một "bình luận" vào một bảng cơ sở dữ liệu, bạn có thể gọi phương thức 62 trên thể hiện của bảng. Nhận xét bảng hiện chỉ được hỗ trợ bởi MySQL và Postgres 8Cập nhật bảngPhương pháp 63 trên mặt tiền 09 có thể được sử dụng để cập nhật các bảng hiện có. Giống như phương thức 51, phương thức 63 chấp nhận hai đối số. tên của bảng và một bao đóng nhận một phiên bản 54 mà bạn có thể sử dụng để thêm các cột hoặc chỉ mục vào bảng 9Đổi tên/xóa bảngĐể đổi tên một bảng cơ sở dữ liệu hiện có, hãy sử dụng phương pháp 68 00Để xóa một bảng hiện có, bạn có thể sử dụng các phương thức 69 hoặc 70 01Đổi tên bảng bằng khóa ngoạiTrước khi đổi tên bảng, bạn nên xác minh rằng bất kỳ ràng buộc khóa ngoại nào trên bảng đều có tên rõ ràng trong tệp di chuyển của bạn thay vì để Laravel gán tên dựa trên quy ước. Mặt khác, tên ràng buộc khóa ngoại sẽ tham chiếu đến tên bảng cũ CộtTạo cộtPhương pháp 63 trên mặt tiền 09 có thể được sử dụng để cập nhật các bảng hiện có. Giống như phương thức 51, phương thức 63 chấp nhận hai đối số. tên của bảng và một bao đóng nhận một phiên bản 75 mà bạn có thể sử dụng để thêm các cột vào bảng 9Các loại cột có sẵnKế hoạch chi tiết của trình tạo lược đồ cung cấp nhiều phương pháp tương ứng với các loại cột khác nhau mà bạn có thể thêm vào bảng cơ sở dữ liệu của mình. Mỗi phương pháp có sẵn được liệt kê trong bảng dưới đây
|