Size: a a a

2020 November 04

ВП

Владимир Плахотников... in symfony
👤 User
Не ну добавлять сюда many to one тоже глупо, поди.
Есть древний баг с one-to-one. Если хочешь ленивую загрузку, то это не сработает и всегда будет джоинить связанную сущность
источник

DT

Dmitriy Tkachenko in symfony
если есть связка one to one, то сущности создаются вместе и удаляются. Сущность ни слева, ни справа не может существовать без второй части по определению
источник

DT

Dmitriy Tkachenko in symfony
это one to one
источник

VM

Volodymyr Melko in symfony
Dmitriy Tkachenko
если есть связка one to one, то сущности создаются вместе и удаляются. Сущность ни слева, ни справа не может существовать без второй части по определению
Почему ты так решил?
Юзер может существовать без детального профайла и заполнить его позже
В one-to-one тоже есть главная сторона
источник

АЯ

Александр Яковлев... in symfony
привет всем!

С супервайзером кто-то работал? пытаюсь его в докер-контейнере запустить и получаю это

Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.

в конфиге юзаю юникс-сокеты, причем тут http серверы, про которые сказано в ошибке - я не понимаю

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
nodaemon=true
loglevel=debug
logfile=/var/www/html/var/logs/supervisord.log
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/www/html/var/logs/supervisord

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

[include]
files = /etc/supervisor/conf.d/*.conf

[program:php-fpm]
command=php-fpm
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/proc/1/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/proc/1/fd/2
stderr_logfile_maxbytes=0
источник

AK

Andrew Kovalyov in symfony
Александр Яковлев
привет всем!

С супервайзером кто-то работал? пытаюсь его в докер-контейнере запустить и получаю это

Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.

в конфиге юзаю юникс-сокеты, причем тут http серверы, про которые сказано в ошибке - я не понимаю

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
nodaemon=true
loglevel=debug
logfile=/var/www/html/var/logs/supervisord.log
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/www/html/var/logs/supervisord

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

[include]
files = /etc/supervisor/conf.d/*.conf

[program:php-fpm]
command=php-fpm
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/proc/1/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/proc/1/fd/2
stderr_logfile_maxbytes=0
а зачем супервизор в докере?
источник

DT

Dmitriy Tkachenko in symfony
Volodymyr Melko
Почему ты так решил?
Юзер может существовать без детального профайла и заполнить его позже
В one-to-one тоже есть главная сторона
пока нет детального профайла, не выполняется свойство 1 к 1 со стороны профайлов, значит это невозможная ситуация
источник

АЯ

Александр Яковлев... in symfony
он там запускает консюмеров rabbitmq
источник

VM

Volodymyr Melko in symfony
связь может быть не двунаправленной, если что
источник

DT

Dmitriy Tkachenko in symfony
Volodymyr Melko
связь может быть не двунаправленной, если что
тогда она не one-to-one
источник

AK

Andrew Kovalyov in symfony
Александр Яковлев
он там запускает консюмеров rabbitmq
где там? в том же контейнере?
источник

VM

Volodymyr Melko in symfony
Dmitriy Tkachenko
тогда она не one-to-one
источник

АЯ

Александр Яковлев... in symfony
да, в php-контейнере
источник

SB

Sergei Baikin in symfony
Александр Яковлев
он там запускает консюмеров rabbitmq
запускайте отдельный контейнер на каждый коньсюмер и все.

Докер сам по себе хороший супервизор
источник

DT

Dmitriy Tkachenko in symfony
доктрина работает с реляционкой а в реляционке правила такие. Хочешь чтобы правила были другие, то используй не реляционку, а то что выполняет твои требования
источник

AK

Andrew Kovalyov in symfony
Александр Яковлев
да, в php-контейнере
не делайте так. Пусть докер сам поднимает контейнеры с консьюмером, зачем еще супервизор тянуть?
источник

DT

Dmitriy Tkachenko in symfony
one to one отношение не может быть односторонним, т.к. выполнение единственности требуется с двух сторон отношения, one to one всегда 1 к 1 и никак иначе, только 1 строка слева и 1 строка справа, любые другие комбинации - это уже не one to one
источник

VM

Volodymyr Melko in symfony
Dmitriy Tkachenko
доктрина работает с реляционкой а в реляционке правила такие. Хочешь чтобы правила были другие, то используй не реляционку, а то что выполняет твои требования
In a relational database, a one-to-one relationship exists when one row in a table may be linked with only one row in another table and vice versa

обрати внимание на may be linked
источник

АЯ

Александр Яковлев... in symfony
Andrew Kovalyov
не делайте так. Пусть докер сам поднимает контейнеры с консьюмером, зачем еще супервизор тянуть?
я о таком подходе даже не слышал. Где можно какие-нибудь best-practice почитать на тему?

Однако проблема в том, что на рабочем проекте оно используется именно так как я описал и моя задача понять почему супервайзер не запускается(
источник

VM

Volodymyr Melko in symfony
собственно внешние ключи в БД не дадут тебе впилить несуществующий айдишник в таблицу, но вот null на раз два
источник