DD.WellWorkover.Cloud/AsbCloudDb
2024-06-30 12:19:37 +05:00
..
Migrations Миграция на добавление всех таблиц ртк-план 2024-06-27 10:01:11 +05:00
Model Проработка ротор 2024-06-30 12:19:37 +05:00
UsefulQueries nit add useful sql script. 2022-12-16 16:09:11 +05:00
AsbCloudDb.csproj Обновление версии .net core 6.0 -> 8.0 2024-02-26 11:27:19 +03:00
EFExtensions.cs Fix EFExtensions.ExecInsertOr*() методы. Не правильно обрабатывался null. 2024-05-16 15:10:21 +05:00
EFExtensionsExceptionHandling.cs Fixes by review 2024-02-12 13:58:02 +05:00
EFExtensionsInitialization.cs Add logging record 2024-02-05 10:38:57 +05:00
EFExtensionsSortBy.cs Add DetectedOperation repository 2024-02-08 11:38:25 +05:00
install pg timescale.md BIG. Add timescaleDB into DB. 2021-11-13 18:47:11 +05:00
Readme.md change 2023-03-29 01:23:41 +05:00
Setup db replication.md fix doc 2023-12-01 17:41:39 +05:00

Миграции

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 <MigrationName> --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();