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 ответов

123 просмотра

так 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 не работает с компоузом

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта