Как использовать & ldquo; joinEager & rdquo; наряду с необработанным SQL-запросом в Objection / Knex?

После долгого и трудного месяца, когда я пытаюсь разузнавать разные вещи и укусаться каждый раз, когда понял,

только потому, что Heroku использует репозиторий git как механизм развертывания, вы не должны рассматривать его как репозиторий git

он мог бы быть rsync так же хорошо, они пошли на git, не отвлекайтесь из-за этого

, если вы это сделаете, вы открываете себе все виды травм. Все вышеупомянутые решения где-то удручающе:

  1. он требует, чтобы что-то делалось каждый раз, или периодически, или случались неожиданные вещи (нажатие подмодулей, синхронизация поддеревья, ...)
  2. , если вы используете двигатель, например, для модуляции вашего кода, Bundler будет есть вас в живых, невозможно описать количество разочарования, которое у меня было с этим проектом во время квеста, чтобы найти хорошее решение для этого, которое вы пытаетесь добавить двигатель как ссылка git repo + bundle deploy - сбой, вам нужно связывать обновление каждый раз, когда вы пытаетесь добавить движок в качестве :path + bundle deploy - fail, команда dev считает :path опцией «вы», не используя Bundler с этой опцией gem ", поэтому он также не будет поставляться для производства, при каждом обновлении движка требуется обновить решение rails stack -_-
  3. , которое я нашел, это использовать движок в качестве символической ссылки /vendor в разработке и фактически копировать файлы для производства

Решение

В рассматриваемом приложении есть 4 проекта в git root:

  1. api - в зависимости от профиля будет работать на двух разных сайтах heroku - загрузить и api
  2. web - веб-сайт
  3. web-old - старый веб-сайт, все еще в процессе миграции
  4. common - общие компоненты, извлеченные в движке

Все проекты имеют символическую ссылку vendor/common, смотрящую на корень механизма common , При компиляции исходного кода для развертывания в heroku нам необходимо удалить symlink и rsync, чтобы его физически находить в папке поставщика каждого отдельного хоста.

  1. принимает список имен хостов в качестве аргументов
  2. запускает git-push в вашем репо-процессе разработки, а затем запускает чистый git-pull в отдельной папке, следя за тем, чтобы никакие грязные (неуправляемые) изменения не были перенесены на хосты автоматически.
  3. развертывает хосты параллельно - все героиня git repo потянута, новый код rsynced в нужные места, в конце концов, с базой данных push в комментарии git commit,
  4. , мы отправляем ping с завитком, чтобы сообщить хобби хостам просыпаться и ловить журналы, чтобы увидеть, все ли вино
  5. хорошо играет с дженкинсами: D (автоматический ввод кода для тестирования серверов после успешных тестов)

Работает очень очень приятно в дикой природе с минимальными (нет?) проблемами 6 месяцев

Вот сценарий https://gist.github.com/bbozo/fafa2bbb8c7b12d923f [/ g 28]

Обновление 1

@AdamBuczynski, это никогда не бывает так просто.

В первую очередь у вас всегда будет своя производственная и тестовая среда - и куча функциональных кластеров в худшем случае - внезапно одна папка должна отображать проекты n heroku в качестве довольно основного требования, и все это необходимо каким-то образом организовать так, чтобы сценарий «знал», какой источник вы хотите развернуть, где

2nd вы захотите разделить код между проектами - теперь приходит часть sync_common, shennanigans с символическими ссылками в разработка заменена фактическим rsynced кодом на Heroku, потому что Heroku требует определенной структуры папок, а bundler и rubygems действительно действительно действительно делают вещи ужасно очень плохо, если вы хотите извлечь общие потоки в gem

3rd, что вам нужно чтобы подключить CI, и он немного изменится по мере того, как должны быть организованы подпапки и git-репо, в конце концов, в самом простом случае использования вы получите вышеупомянутый смысл.

В других проектах мне нужно подключайте Java-сборки, когда вы продаете программное обеспечение нескольким клиентам, нужно будет фильтровать модули, которые устанавливаются в зависимости от требований к установке, и еще что-то,

. Я действительно должен рассмотреть возможность объединения вещей в Rakefile или что-то еще и сделать все так ...

0
задан faniva 16 January 2019 в 03:03
поделиться