# Миграции ## EF tools https://docs.microsoft.com/ru-ru/ef/core/cli/dotnet Установка: ``` dotnet tool install --global dotnet-ef ``` Обновление: ``` dotnet tool update --global dotnet-ef ``` ## Создать миграцию ``` dotnet ef migrations add --project AsbCloudDb ``` ## Откатить миграцию ``` dotnet ef migrations remove --project AsbCloudDb ``` Удаляется последняя созданная миграция. ## Применить миграции При старте проекта применяются автоматически ``` dotnet ef database update --project .\AsbCloudDb ``` # Backup and restore ## Backup Terminal: ``` sudo -u postgres pg_dump -Fc -U postgres postgres -W > dump_2022-03-09.bak ``` ## Restore backup ### Step 1. (Re)Create DB and schema IF needed. psql: ``` --drop schema public cascade; CREATE DATABASE postgres; \c postgres create schema public; ``` ### Step 2. Init timescaledb and prepare DB to restore ``` CREATE EXTENSION IF NOT EXISTS timescaledb; SELECT timescaledb_pre_restore(); ``` ### Step 3. Restore DB, then [Longest operation] Terminal: ``` sudo -u postgres pg_restore -Fc -d postgres dump_2021-11-26.bak ``` OR psql: ``` \! pg_restore -Fc -d postgres dump_2021-11-26.bak ``` win: pg_restore -Fc -d postgres -U postgres -W dump_2022-01-11.bak Then 'exit restore mode' psql: ``` SELECT timescaledb_post_restore(); ``` # SEQUENCES Обновление Sequence (на примере t_process_map_plan_rotor): ``` SELECT setval('t_process_map_plan_rotor_id_seq', (select max(id) from t_process_map_plan_rotor), true); ```