2015-11-17 1 views
0

Я никогда не работал с Капистрано до этого и в настоящее время я борюсь с желанием просто отказаться от него и вернуться к моим старым ручным путям.Ошибка миграции базы данных Capistrano 3 и не создает текущую символическую ссылку

Как я понимаю, Capistrano V3 не создает исходную базу данных, поскольку они считают, что это обязанность администратора БД.

Поэтому я должен что-то упустить, но я выполнил их инструкции, но исходный cap staging deploy не удался, когда он дошел до этапа rake db:migrate, потому что базы данных не существует.

Из-за отказа, symlink для current -> releases никогда не создается.

Достаточно ли принято общепринятой практики, что мы SSH в наших коробках и cd в первую папку под releases и вручную запускаем rake db:create ...?

И тогда оттуда я должен просто запустить cap staging deploy, чтобы он закончил создание symlinks?

Кажется, взломан для чего-то, что должно облегчить ситуацию, и я не уверен, правильно ли я это понимаю.

Спасибо.

+0

Я думаю, вы будете только сделайте это один раз ... –

ответ

0

Имеет смысл оставить определенные вещи из развертывания. Поскольку первоначальная настройка и рутинное развертывание являются очень отдельными функциями и требуют разных специальностей или в больших развертываниях даже разных наборов навыков. Тем не менее .. Я полностью с вами - при первом развертывании необходимо вручную настроить базу данных и определенные файлы (в частности, связанные файлы, такие как secrets.yml) - это шаг, который просто отнимает мое время.

Я использую этот плагин: https://github.com/capistrano-plugins/capistrano-postgresql

просто добавить require capistrano/postgresql к вашему capfile, как вы бы любой плагин

затем запустить cap staging setup перед первым запускается cap staging deploy

+0

Это похоже на приемлемый маршрут, мне нужно настроить шаблон, потому что я использую 'postgis', а не' postgres' напрямую. Вы решили просто предоставить права sudo NOPASSWD? Я в настоящее время сталкиваюсь с проблемами tty. – mgabe

+0

Это работало для меня. – mgabe

+0

@MikeGabriel - я установил определенные команды для использования пользователю развертывания и только эти команды, чтобы они не могли слишком сильно пострадать. Вы можете использовать cmd_alias в файле sudoers для создания команд с аргументами, а затем использовать 'username ALL = (ALL) NOPASSWD: COMMANDA, COMMANDB, COMMANDC' – trh