170 похожих чатов

Добрый. Подскажите пожалуйста как накатить миграции для базы данных Postgresql

в контейнере Docker? Собрал в вижле свое ASP.Net приложение через файл docker-compose.
Кстати вот он:

version: '3.4'

services:
naladimbot:
image: ${DOCKER_REGISTRY-}naladimbot
build:
context: .
dockerfile: NaladimBot/Dockerfile
ports:
- "80:80"
depends_on:
- db
networks:
- mynetwork
db:
image: postgres:latest
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 23r2323ffsedsEGDS#%23EAF
POSTGRES_DB: NaladimBot.Database
volumes:
- db:/var/lib/postgresql/
networks:
- mynetwork

volumes:
db:

networks:
mynetwork:
driver: bridge

А вот строка подключения:


"ConnectionStrings": {
"DefaultConnection": "Server=db;Port=5432;Username=postgres;Password=23r2323ffsedsEGDS#%23EAF;Database=NaladimBot.Database;"
}


Все контейнеры появились в Docker Desktop. Но вот пытаюсь через Package Manager Console накатить миграции командой update-database, сталкиваюсь с ошибкой "Этот хост не найден".
В строке подключения пробывал менять server на Server=localhost, миграции наказываются успешно, но к базе данных не подключается в дальнейшем при работе приложения через докер. Что я делаю не так, где затык?

19 ответов

117 просмотров

так db это не uri и не имя хоста в целом

ALEX- Автор вопроса
Anton 『被遗忘的社会』
так db это не uri и не имя хоста в целом

Тогда получается затык в строке подключения?

Для такого миграции лучше делать в самом приложении, при старте... Чтобы при развертывании, оно все само накатывало. )

Дмитрий Алексеев
Для такого миграции лучше делать в самом приложени...

Вообще накатка миграций на старте не самая лучшая идея, хотя иногда так и делают

Дмитрий Алексеев
А обоснование будет?

Да, можно погуглить 12 factor app, если устроит. А если нет, то, например, если приложение на старте не сможет накатить миграции, то упадёт вместе с контейнером и даже логи нельзя будет посмотреть нормально без танцев. +замедляется старт приложения

Oleg Safonov
Да, можно погуглить 12 factor app, если устроит. А...

Ещё к причинам относят то, что может быть несколько инстансов таких сервисов, в которых происходят автомиграции и может случиться грязь) Но нам похер, мы накатываем)

Oleg Safonov
Да, можно погуглить 12 factor app, если устроит. А...

> 12 factor app Это вообще не про миграции. А если нет, то, например, если приложение на старте не сможет накатить миграции, то упадёт вместе с контейнером А кто его падать обязывает?

Rudakov V.
Ещё к причинам относят то, что может быть нескольк...

В мультиинстансах вообще нельзя миграции применять )

Дмитрий Алексеев
> 12 factor app Это вообще не про миграции. А ес...

Не вижу смысла спорить, если вы не понимаете о чём речь, честно.

Дмитрий Алексеев
В мультиинстансах вообще нельзя миграции применять...

Применяю и чувствую себя прекрасно 😁 прилепили ретрай на эту логику и ни разу проблем не возникло)

Rudakov V.
Применяю и чувствую себя прекрасно 😁 прилепили рет...

И как вам ретрай помогает, если провели миграцию, а половина инстансов со старой схемой?

Дмитрий Алексеев
И как вам ретрай помогает, если провели миграцию, ...

А, мультиинстансы БДшек?) Я то про сервисы говорю, БД одна) у нас не шибко высокая нагрузка :)

Rudakov V.
А, мультиинстансы БДшек?) Я то про сервисы говорю,...

Ну даже в этом случае сами инстансы отвалятся при обращении к одной БД, если схема не соответствует...

Дмитрий Алексеев
Ну даже в этом случае сами инстансы отвалятся при ...

Кто-то же из них накатит миграцию при старте Что тут отвалится?

Rudakov V.
Кто-то же из них накатит миграцию при старте Что ...

А кто будет гарантировать что они все одной версии? И как будет определяться кто из них будет накатывать... Как бы в паралель срать не начали... ну такое...

Дмитрий Алексеев
А кто будет гарантировать что они все одной версии...

Ни разу в параллель не ушли) может когда-то обосремся, но не сегодня) Если инстанс не смог накатить, потому что другой накатывает - уходит в ретрай, на следующей итерации он смотрит, а схема уже соответствует и ничего не накатывает) На нашем проекте вполне достаточно такой логики

Rudakov V.
Ни разу в параллель не ушли) может когда-то обосре...

Не суть, я так то про монолит говорил )) Микросервисы сами по себе другая тема.

package manager не работает с компоузом

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта