PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cập nhật postgreSQL DB thông qua di chuyển EFCore trong Azure DevOps

Cuối cùng tôi cũng phải sửa nó.

Tôi đã tìm thấy hai giải pháp để khắc phục sự cố.

  1. Đầu tiên, có một bản sửa lỗi chung cho tất cả các cơ sở dữ liệu hỗ trợ Chuyển đổi khung thực thể :
    • Sử dụng .NET Core Nhiệm vụ, chúng tôi sẽ phải cài đặt công cụ dotnet ef :Nhiệm vụ sẽ giống như sau:

Và đây sẽ là YAML (trong trường hợp bạn muốn sử dụng nó ngoài luồng phát hành):

 - task: [email protected]
  displayName: 'dotnet custom'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
  • Và khi chúng tôi đã cài đặt các công cụ cần thiết, với CMD hoặc một Bash Nhiệm vụ, chúng ta sẽ phải thực thi một tập lệnh như thế này:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build

Bạn chỉ cần thêm cờ -c trong trường hợp bạn có nhiều ngữ cảnh trong dự án của mình (đôi khi các DbContexts khác có thể đến từ một số gói nugget).

Lưu ý rằng tôi đã thêm cờ --no-build vì tôi đã xây dựng dự án trong quy trình xây dựng để tuân theo các thông lệ tốt.

  1. Tùy chọn khác (và tùy chọn cuối cùng tôi đã sử dụng), đó là sử dụng nhiệm vụ này về cơ bản thực hiện cùng một quy trình, với sự khác biệt là nó thực hiện bằng cách sử dụng .dll đã được biên dịch của bạn các tệp, vì vậy bạn sẽ không phải sao chép toàn bộ dự án để quá trình di chuyển hoạt động. Việc thiết lập nhiệm vụ, mặc dù bạn phải điền nhiều đầu vào, nhưng nó khá đơn giản và nó cũng phải hoạt động với các Cơ sở dữ liệu khác.

Tuy nhiên, nếu tôi phải sử dụng SQL Server hoặc MySQL Tôi sẽ sử dụng tập lệnh di chuyển, vì quá trình này dễ dàng hơn nhiều (bạn chỉ cần tạo .sql script và sau đó là tệp duy nhất cần thiết để triển khai quá trình di chuyển).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô hình Django cho chế độ xem Postgres

  2. x là một thủ tục, sử dụng cuộc gọi khi tôi đang sử dụng cuộc gọi

  3. Làm cách nào để sử dụng tên cột động trong câu lệnh UPDATE hoặc SELECT trong một hàm?

  4. Lỗi khi chạy lệnh psql trong /docker-entrypoint-initdb.d/db_init.sh (psql:không thể kết nối với máy chủ:Kết nối bị từ chối)

  5. SQLalchemy không thực hiện các thay đổi khi thiết lập vai trò