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

72 просмотра

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Какой дос блять?
007
9
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
Карта сайта