Hướng dẫn này mô tả cách giải quyết các sự cố với Prisma Migrate trong môi trường phát triển, thường liên quan đến việc đặt lại cơ sở dữ liệu của bạn. Để khắc phục sự cố tập trung vào sản xuất, hãy xem - Khắc phục sự cố sản xuất
- Cơ sở dữ liệu sản xuất bản vá/sửa lỗi nóng
Hướng dẫn này không áp dụng cho MongoDB. Thay vì $npx prisma migrate dev
9, $npx prisma migrate dev
0 được sử dụng cho MongoDB.
Xử lý xung đột lịch sử di chuyểnXung đột lịch sử di chuyển xảy ra khi có sự khác biệt giữa thư mục di chuyển trong hệ thống tệp và bảng $npx prisma migrate dev
0 trong cơ sở dữ liệuNguyên nhân của xung đột lịch sử di cư trong môi trường phát triển- Di chuyển đã được áp dụng sau đó được sửa đổi
- Di chuyển đã được áp dụng bị thiếu trong hệ thống tệp
Trong môi trường phát triển, việc chuyển đổi giữa các nhánh tính năng có thể dẫn đến xung đột lịch sử vì bảng $npx prisma migrate dev
0 chứa các lần di chuyển từ $npx prisma migrate dev
2 và việc chuyển sang $npx prisma migrate dev
3 có thể khiến một số lần di chuyển đó biến mấtGhi chú. Bạn không bao giờ nên cố ý xóa hoặc chỉnh sửa quá trình di chuyển, vì điều này có thể dẫn đến sự khác biệt giữa quá trình phát triển và sản xuất
Khắc phục xung đột lịch sử di chuyển trong môi trường phát triểnNếu Prisma Migrate phát hiện xung đột lịch sử di chuyển khi bạn chạy $npx prisma migrate dev
4, CLI sẽ yêu cầu đặt lại cơ sở dữ liệu và áp dụng lại lịch sử di chuyển
Lược đồ trôiSự trôi dạt lược đồ cơ sở dữ liệu xảy ra khi lược đồ cơ sở dữ liệu của bạn không đồng bộ với lịch sử di chuyển của bạn - lược đồ cơ sở dữ liệu đã 'trôi dạt' khỏi nguồn gốc của sự thật Nguyên nhân khiến lược đồ trôi dạt trong môi trường phát triểnSchema drift có thể xảy ra nếu Ghi chú. Cơ sở dữ liệu bóng được yêu cầu để phát hiện sự trôi dạt của lược đồ và do đó chỉ có thể được thực hiện trong môi trường phát triển
Sửa lỗi trôi dạt lược đồ trong môi trường phát triểnNếu bạn đã thực hiện các thay đổi thủ công đối với cơ sở dữ liệu mà bạn không muốn giữ lại hoặc có thể dễ dàng sao chép trong lược đồ Prisma Đặt lại cơ sở dữ liệu của bạn $npx prisma migrate reset
Sao chép các thay đổi trong lược đồ Prisma và tạo một lần di chuyển mới $npx prisma migrate dev
Nếu bạn đã thực hiện các thay đổi thủ công đối với cơ sở dữ liệu mà bạn muốn giữ lại, bạn có thể Nội quan cơ sở dữ liệu ________số 8Prisma sẽ cập nhật lược đồ của bạn với những thay đổi được thực hiện trực tiếp trong cơ sở dữ liệu Tạo một lần di chuyển mới để bao gồm các thay đổi nội quan trong lịch sử di chuyển của bạn $npx prisma migrate dev --name introspected_change
Prisma Migrate sẽ nhắc bạn đặt lại, sau đó áp dụng tất cả các lần di chuyển hiện có và một lần di chuyển mới dựa trên các thay đổi được xem xét nội tâm. Cơ sở dữ liệu và lịch sử di chuyển của bạn hiện được đồng bộ hóa, bao gồm các thay đổi thủ công của bạn
Di chuyển không thành côngNguyên nhân của việc di chuyển không thành công trong môi trường phát triểnDi chuyển có thể thất bại nếu Mỗi lần di chuyển trong bảng $npx prisma migrate dev
0 có một cột $npx prisma migrate dev
8 lưu trữ lỗi
Sửa lỗi di chuyển không thành công trong môi trường phát triểnCách dễ nhất để xử lý việc di chuyển không thành công trong môi trường nhà phát triển là giải quyết nguyên nhân gốc rễ và đặt lại cơ sở dữ liệu. Ví dụ Nếu bạn đã gây ra lỗi cú pháp SQL bằng cách chỉnh sửa cơ sở dữ liệu theo cách thủ công, hãy cập nhật tệp $npx prisma migrate dev
9 bị lỗi và đặt lại cơ sở dữ liệu$npx prisma migrate dev
4
Nếu bạn đã đưa ra một thay đổi trong lược đồ Prisma mà không thể áp dụng cho cơ sở dữ liệu có dữ liệu (ví dụ: một cột bắt buộc trong bảng có dữ liệu) Xóa tệp $npx prisma migrate dev
9
Sửa đổi lược đồ - ví dụ: thêm giá trị mặc định vào trường bắt buộc Di chuyển $npx prisma migrate dev
6Prisma Migrate sẽ nhắc bạn đặt lại cơ sở dữ liệu và áp dụng lại tất cả các lần di chuyển
Nếu có điều gì đó làm gián đoạn quá trình di chuyển, hãy đặt lại cơ sở dữ liệu $npx prisma migrate dev
4
Prisma Migrate và PgBouncerBạn có thể gặp lỗi sau nếu cố chạy các lệnh Prisma Migrate trong môi trường sử dụng PgBouncer để tổng hợp kết nối $npx prisma migrate dev
8Xem giải pháp thay thế Prisma Migrate và PgBouncer để biết thêm thông tin và giải pháp thay thế. Theo dõi vấn đề GitHub #6485 để cập nhật
Làm cách nào để chạy lại tất cả các lần di chuyển trong laravel?
NẾU bạn muốn di chuyển lại tất cả cơ sở dữ liệu, bạn chỉ cần thực hiện. php nghệ nhân di chuyển. làm mới . NẾU bạn muốn đảm bảo cơ sở dữ liệu của mình sạch sẽ với những thay đổi mới nhất, bạn có thể bỏ toàn bộ bảng cơ sở dữ liệu của mình và thực hiện di chuyển lại thủ công php. Ngoài ra, bạn có thể thử php artisan mig --seed nếu bạn có bất kỳ seeder nào.
Làm cách nào để chạy di chuyển cụ thể trong laravel?
Để chạy quá trình di chuyển cụ thể trong Laravel, bạn cần phải sử dụng tùy chọn --path với lệnh di chuyển nghệ nhân php . Hãy lấy một ví dụ đơn giản, chúng tôi có '2019_12_04_131405_create_payments_table. php' trong thư mục cơ sở dữ liệu/di chuyển và chúng tôi muốn chạy quá trình di chuyển này.
Làm cách nào để khôi phục di chuyển cụ thể trong laravel?
Làm cách nào để lùi quá trình di chuyển trong Laravel? . Đã tạo di chuyển mới. nghệ nhân php làm. di chuyển tạo_posts_table. . Phục hồi lần di chuyển cuối cùng. nghệ nhân php di chuyển. phục hồi Phục hồi lần di chuyển cuối cùng bằng Bước. bạn có thể chuyển tùy chọn --step với số lần di chuyển lùi lại từ lần trước. . Phục hồi tất cả các di chuyển
|