Thêm ràng buộc duy nhất Di chuyển Laravel
Để di chuyển dữ liệu một cách an toàn và không có thời gian chết, PlanetScale yêu cầu tất cả các bảng phải có một khóa duy nhất, không phải là khóa không thay đổi trong quá trình di chuyển. Yêu cầu này có thể gây khó khăn nếu, ví dụ: bạn cố gắng THAY ĐỔI khóa chính của một bảng không có khóa duy nhất nào khác Show Nếu bạn cố gắng triển khai thay đổi lược đồ như vậy, yêu cầu triển khai sẽ không thành công với lỗi Ghi chú Ví dụ này thêm một khóa duy nhất tạm thời nhưng bạn cũng có thể sử dụng một chỉ mục duy nhất hoặc tạo khóa tạm thời bằng cách thêm một ràng buộc duy nhất Việc thay đổi một khóa duy nhất có thể được thực hiện trong 3 bước. Mỗi bước là một
Các thay đổi lược đồ không chặn của PlanetScale hoạt động bằng cách trước tiên tạo một bảng ma, giống như bảng gốc của bạn. Bảng ma sau đó được thay đổi để phù hợp với lược đồ đã thay đổi của bạn. Chúng tôi sao chép dữ liệu từ bảng gốc, cũng như truyền mọi thay đổi khi chúng xảy ra với bảng ma. Khi bảng ma này đồng bộ với bản gốc, chúng tôi hoán đổi các bảng tại chỗ. Điều này hoàn tất quá trình di chuyển một cách an toàn Để làm điều này, chúng ta cần phải có một khóa chính hoặc khóa duy nhất nhất quán trên cả hai bảng để sao chép dữ liệu một cách đáng tin cậy qua. Đây là lý do tại sao chúng tôi yêu cầu một khóa nhất quán khi di chuyển dữ liệu của bạn Hướng dẫn này cung cấp quy trình ba bước để cập nhật khóa duy nhất của bảng và có thể được lặp lại thường xuyên nếu cần Một chỉ mục duy nhất đảm bảo các cột khóa chỉ mục không chứa bất kỳ giá trị trùng lặp nào. Chỉ mục duy nhất có thể là tổng hợp (nhiều) Laravel sẽ tự động tạo một tên chỉ mục duy nhất dựa trên tên bảng, tên cột và loại chỉ mục (duy nhất) khi tạo chỉ mục. Để xóa một chỉ mục duy nhất, trước tiên bạn phải đặt tên cho nó Tạo chỉ mục duy nhất Tạo một chỉ mục duy nhất với tên user_email_unique
Thả chỉ số duy nhất users_email_unique - là tên của Chỉ mục duy nhất
Tạo chỉ mục tổng hợp duy nhất Tạo một chỉ mục duy nhất tổng hợp với tên người dùng_tên_email_unique
Thả chỉ mục tổng hợp duy nhất users_name_email_unique - là tên của Composite Unique Index
Tạo chỉ mục duy nhất với tên tùy chỉnh MySQL có một giới hạn ở đây. 64 ký tự cho độ dài tên chỉ mục duy nhất. Bạn có thể cần phải tự đặt tên chỉ mục |