Cách di chuyển bảng cụ thể trong Laravel 9
Bài viết này sẽ cung cấp một ví dụ về cách tạo bảng cơ sở dữ liệu bằng lệnh migration trong laravel 9. Mình sẽ hướng dẫn các bạn cách tạo migration trong laravel 9. Trong bài viết này, chúng ta sẽ thực hiện cách tạo table migration trong laravel 9. Bài đăng này sẽ cung cấp cho bạn một ví dụ đơn giản về cách tạo bảng trong laravel 9 bằng cách sử dụng migration Show
Mình sẽ hướng dẫn các bạn cách tạo bảng cơ sở dữ liệu bằng laravel migration. chúng tôi sẽ sử dụng lệnh laravel 9 để tạo di chuyển cho bảng Trong ví dụ này, chúng tôi sẽ đơn giản tạo bảng "bài đăng" với các cột id, title, body, is_publish, created_at và updated_at. chúng tôi sẽ tạo di chuyển mới bằng lệnh laravel 9 và thêm các hàng ở trên. Sau đó, chúng tôi sẽ chạy di chuyển và chúng tôi sẽ tạo bảng trên cơ sở dữ liệu mysql. vì vậy hãy xem hướng dẫn dưới đây Tạo di chuyển Sử dụng lệnh dưới đây, bạn có thể chỉ cần tạo di chuyển cho bảng cơ sở dữ liệu
Sau khi chạy lệnh trên, bạn có thể thấy tệp mới được tạo dưới đây và bạn phải thêm cột mới cho kiểu dữ liệu chuỗi, số nguyên, dấu thời gian và văn bản như dưới đây Để thực hiện bất kỳ tác vụ nào, chúng tôi cần tạo một tệp di chuyển tương tự như những gì chúng tôi đã tạo trong khi tạo di chuyển sự thay đổi duy nhất sẽ có trong tên di chuyển, luôn cố gắng viết tên di chuyển mang tính mô tả giúp laravel hiểu tên bảng trong quá trình di chuyển. 6 chúng ta nên chạy lệnh như
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Đọc thêm tại Công cụ sửa đổi cộtCông cụ sửa đổi cột không là gì ngoài một chức năng được xác định trước có sẵn trong LARAVEL Migration bằng cách sử dụng chức năng đó, bạn có thể tạo bất kỳ cột nào 7, Đặt cột 8 và nhiều chức năng khác 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 dễ dàng sửa đổi và chia sẻ lược đồ cơ sở dữ liệu của ứng dụng. Di chuyển thường được ghép nối với trình tạo lược đồ của Laravel để dễ dàng xây dựng lược đồ cơ sở dữ liệu của ứng dụng của bạn. 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, 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 Mặt tiền 2 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 LaravelTạo MigrationĐể tạo di chuyển, hãy sử dụng lệnh Artisan 3
Di chuyển mới sẽ được đặt trong thư mục 4 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ểnCác tùy chọn 5 và 6 cũng có thể được sử dụng để chỉ ra 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. Các tùy chọn này điền trước tệp sơ khai di chuyển đã tạo với bảng đã chỉ định 1Nếu bạn muốn chỉ định đường dẫn đầu ra tùy chỉnh cho quá trình di chuyển đã tạo, bạn có thể sử dụng tùy chọn 7 khi thực hiện lệnh 3. Đường dẫn đã cho phải liên quan đến đường dẫn cơ sở của ứng dụng của bạnCơ cấu di cưMột lớp di chuyển chứa hai phương thức. 9 và 50. Phương thức 9 đượ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 50 sẽ đảo ngược các hoạt động được thực hiện bởi phương thức 9Trong cả hai phương thức 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 2,. Ví dụ: ví dụ di chuyển này tạo bảng 55 1Di 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 56 Artisan
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ờ 57Quay 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 58. 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
Bạ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 59 cho lệnh 58. Ví dụ: lệnh sau sẽ khôi phục năm lần di chuyển cuối cùng 5Lệnh 91 sẽ khôi phục tất cả các lần di chuyển ứng dụng của bạnPhục hồi và di chuyển trong một lệnhLệnh 92 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 56. 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ả 9Bạ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 59 cho lệnh 95. 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 5Bỏ tất cả các bảng và di chuyểnLệnh 96 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 56 8Nhữ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 98 trên mặt tiền 2. Phương thức 98 chấp nhận hai đối số. Đầu tiên là tên của bảng, trong khi thứ hai là một 51 nhận một đối tượng 52 có thể được sử dụng để xác định bảng mới 4Khi 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ể dễ dàng kiểm tra sự tồn tại của một bảng hoặc cột bằng cách sử dụng phương thức 53 và 54 7Kế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 mình, hãy sử dụng phương thức 55 10Bạn có thể sử dụng các lệnh sau trên trình tạo lược đồ để xác định các tùy chọn của bảng LệnhMô tả 56Chỉ định công cụ lưu trữ bảng (MySQL). 57Chỉ định bộ ký tự mặc định cho bảng (MySQL). 58Chỉ định đối chiếu mặc định cho bảng (MySQL). 59Tạo bảng tạm thời (ngoại trừ SQL Server)Đổ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 80 11Để xóa một bảng hiện có, bạn có thể sử dụng các phương thức 81 hoặc 82 12Đổ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 83 trên mặt tiền 2 có thể được sử dụng để cập nhật các bảng hiện có. Giống như phương thức 98, phương thức 83 chấp nhận hai đối số. tên của bảng và một 51 nhận một phiên bản 52 mà bạn có thể sử dụng để thêm các cột vào bảng 13Các loại cột có sẵnTrình tạo lược đồ chứa nhiều loại cột mà bạn có thể chỉ định khi tạo bảng của mình CommandDescription 89Cột tương đương UNSIGNED BIGINT (khóa chính) tăng tự động. 40BIGINT cột tương đương. 41BLOB cột tương đương. 42BOOLEAN cột tương đương. 43Cột tương đương CHAR với độ dài tùy chọn. 44DATE cột tương đương. 45DATETIME cột tương đương. ________ 446 Cột tương đương DATETIME (với múi giờ). 47DECIMAL cột tương đương với độ chính xác (tổng số) và tỷ lệ (chữ số thập phân). 48Cột tương đương NHÂN ĐÔI với độ chính xác (tổng số) và tỷ lệ (chữ số thập phân). 49ENUM cột tương đương. 70FLOAT cột tương đương với độ chính xác (tổng chữ số) và tỷ lệ (chữ số thập phân). 71Cột tương đương HÌNH HỌC. 72GEOMETRYCOLLECTION cột tương đương. 73Cột tương đương UNSIGNED INTEGER (khóa chính) tự động tăng. 74INTEGER cột tương đương. 75Cột tương đương địa chỉ IP. 76JSON cột tương đương. 77JSONB cột tương đương. 78LINESTRING cột tương đương. 79LONGTEXT cột tương đương. Cột tương đương địa chỉ 100MAC. 101Cột tương đương UNSIGNED MEDIUMINT (khóa chính) tự động tăng. 102MEDIUMINT cột tương đương. 103MEDIUMTEXT cột tương đương. 104Adds 105 UNSIGNED BIGINT và 106 cột tương đương VARCHAR. 107MULTILINESTRING cột tương đương. 108MULTIPOINT cột tương đương. 109MULTIPOLYGON cột tương đương. 110Thêm phiên bản nullable của cột 111. 112Bí danh của phương thức 113. 114POINT cột tương đương. 115POLYGON cột tương đương. 116Thêm cột tương đương 117 VARCHAR(100) nullable. 118Cột tương đương UNSIGNED SMALLINT (khóa chính) tự động tăng. 119SMALLINT cột tương đương. 120Thêm một cột tương đương 121 DẤU THỜI GIAN có thể null để xóa mềm. 122Thêm cột tương đương 121 DẤU THỜI GIAN (có múi giờ) không thể dùng để xóa mềm. 124VARCHAR cột tương đương với độ dài tùy chọn. 125Cột tương đương TEXT. 126TIME cột tương đương. 127TIME (với múi giờ) cột tương đương. 128TIMESTAMP cột tương đương. ________ 1129 Cột tương đương DẤU THỜI GIAN (có múi giờ). 130Thêm các cột tương đương với dấu thời gian của 131 và 132 nullable. 133Thêm các cột tương đương 131 và 132 DẤU THỜI GIAN (với múi giờ) có thể vô hiệu hóa. 136Cột tương đương UNSIGNED TINYINT (khóa chính) tự động tăng. 137TINYINT cột tương đương. 138UNSIGNED BIGINT cột tương đương. 139Cột tương đương DECIMAL UNSIGNED với độ chính xác (tổng chữ số) và tỷ lệ (chữ số thập phân). ________ 1140 Cột tương đương UNSIGNED INTEGER. 141UNSIGNED MEDIUMINT cột tương đương. 142UNSIGNED SMALLINT cột tương đương. 143UNSIGNED TINYINT cột tương đương. 144UUID cột tương đương. 145YEAR cột tương đươngCông cụ sửa đổi cộtNgoài các loại cột được liệt kê ở trên, có một số "công cụ sửa đổi" cột mà bạn có thể sử dụng khi thêm cột vào bảng cơ sở dữ liệu. Ví dụ: để tạo cột "nullable", bạn có thể sử dụng phương thức 146 14Dưới đây là danh sách tất cả các công cụ sửa đổi cột có sẵn. Danh sách này không bao gồm các Công cụ sửa đổi Mô tả 147Đặt cột "sau" một cột khác (MySQL) 148Đặt cột INTEGER làm tăng tự động (khóa chính) 149Chỉ định bộ ký tự cho cột (MySQL) 150Chỉ định đối chiếu cho cột (MySQL/SQL Server) 151Thêm nhận xét vào cột Sửa đổi cộtđiều kiện tiên quyếtTrước khi sửa đổi một cột, hãy đảm bảo thêm phần phụ thuộc 161 vào tệp 162 của bạn. Thư viện Doctrine DBAL được sử dụng để xác định trạng thái hiện tại của cột và tạo các truy vấn SQL cần thiết để thực hiện các điều chỉnh đã chỉ định cho cột 15Cập nhật thuộc tính cộtPhương pháp 163 cho phép bạn sửa đổi một số loại cột hiện có thành loại mới hoặc sửa đổi các thuộc tính của cột. Ví dụ: bạn có thể muốn tăng kích thước của cột chuỗi. Để xem phương pháp 163 đang hoạt động, hãy tăng kích thước của cột 165 từ 25 lên 50 16Chúng tôi cũng có thể sửa đổi một cột thành nullable 17
Đổi tên cộtĐể đổi tên một cột, bạn có thể sử dụng phương pháp 166 trên Schema builder. Trước khi đổi tên cột, hãy đảm bảo thêm phần phụ thuộc 161 vào tệp 162 của bạn 18
thả cộtĐể thả một cột, hãy sử dụng phương pháp 170 trên trình tạo Schema. Trước khi loại bỏ các cột khỏi cơ sở dữ liệu SQLite, bạn sẽ cần thêm phần phụ thuộc 161 vào tệp 162 của mình và chạy lệnh 173 trong thiết bị đầu cuối của bạn để cài đặt thư viện 19Bạn có thể xóa nhiều cột khỏi một bảng bằng cách chuyển một mảng tên cột cho phương thức 170 10
Bí danh lệnh có sẵnLệnhMô tả 175Thả cột 117. 177Thả cột 121. 179Bí danh của phương pháp 180. 181Thả cột 131 và 132. 184Bí danh của phương pháp 185chỉ mụcTạo chỉ mụcTrình tạo lược đồ hỗ trợ một số loại chỉ mục. Trước tiên, hãy xem một ví dụ chỉ định các giá trị của một cột phải là duy nhất. Để tạo chỉ mục, chúng ta có thể xâu chuỗi phương thức 186 vào định nghĩa cột 11Ngoài ra, bạn có thể tạo chỉ mục sau khi xác định cột. Ví dụ Bạn thậm chí có thể chuyển một mảng các cột tới một phương thức chỉ mục để tạo chỉ mục tổng hợp (hoặc tổng hợp) 12Laravel sẽ tự động tạo một tên chỉ mục hợp lý, nhưng bạn có thể truyền đối số thứ hai cho phương thức để tự chỉ định tên đó 13Các loại chỉ mục có sẵnMỗi phương thức chỉ mục chấp nhận một đối số thứ hai tùy chọn để chỉ định tên của chỉ mục. Nếu bỏ qua, tên sẽ được lấy từ tên của bảng và (các) cột LệnhMô tả 187Thêm khóa chính. 188Thêm phím tổng hợp. 189Thêm một chỉ mục duy nhất. 190Thêm một chỉ mục đơn giản. 191Thêm chỉ mục không gian. (ngoại trừ SQLite)Độ dài chỉ mục & MySQL/MariaDBLaravel sử dụng bộ ký tự 192 theo mặc định, bao gồm hỗ trợ lưu trữ "biểu tượng cảm xúc" trong cơ sở dữ liệu. Nếu bạn đang chạy phiên bản MySQL cũ hơn 5. 7. 7 hoặc MariaDB cũ hơn 10. 2. 2, bạn có thể cần định cấu hình thủ công độ dài chuỗi mặc định được tạo bởi quá trình di chuyển để MySQL tạo chỉ mục cho chúng. Bạn có thể định cấu hình điều này bằng cách gọi phương thức 193 trong 194 của bạn 14Ngoài ra, bạn có thể bật tùy chọn 195 cho cơ sở dữ liệu của mình. Tham khảo tài liệu về cơ sở dữ liệu của bạn để biết hướng dẫn về cách bật tùy chọn này đúng cáchĐổi tên chỉ mụcĐể đổi tên một chỉ mục, bạn có thể sử dụng phương pháp 196. Phương thức này chấp nhận tên chỉ mục hiện tại làm đối số đầu tiên và tên mong muốn làm đối số thứ hai 15Giảm chỉ sốĐể loại bỏ một chỉ mục, bạn phải chỉ định tên của chỉ mục. Theo mặc định, Laravel tự động gán tên hợp lý cho các chỉ mục. Nối tên bảng, tên của cột được lập chỉ mục và loại chỉ mục. Dưới đây là một số ví dụ CommandDescription 197Xóa khóa chính khỏi bảng "người dùng". 198Xóa một chỉ mục duy nhất khỏi bảng "người dùng". 199Xóa chỉ mục cơ bản khỏi bảng "geo". 100Xóa chỉ mục không gian khỏi bảng "geo" (ngoại trừ SQLite)Nếu bạn chuyển một mảng các cột vào một phương thức bỏ chỉ mục, tên chỉ mục thông thường sẽ được tạo dựa trên tên bảng, cột và loại khóa 16Ràng buộc khóa ngoạiLaravel cũng cung cấp hỗ trợ để tạo các ràng buộc khóa ngoại, được sử dụng để buộc tính toàn vẹn tham chiếu ở cấp cơ sở dữ liệu. Ví dụ: hãy xác định cột 101 trên bảng 102 tham chiếu cột 103 trên bảng 104 17Bạn cũng có thể chỉ định hành động mong muốn cho các thuộc tính "khi xóa" và "khi cập nhật" của ràng buộc 18Để xóa khóa ngoại, bạn có thể sử dụng phương pháp 105. Các ràng buộc khóa ngoại sử dụng quy ước đặt tên giống như các chỉ mục. Vì vậy, chúng tôi sẽ nối tên bảng và các cột trong ràng buộc sau đó thêm hậu tố tên bằng "_foreign" 19Hoặc, bạn có thể chuyển một giá trị mảng sẽ tự động sử dụng tên ràng buộc thông thường khi thả 0Bạn có thể bật hoặc tắt các ràng buộc khóa ngoại trong quá trình di chuyển của mình bằng cách sử dụng các phương pháp sau 1
|