Есть ли проблемы с установкой Rails после повторного копирования? - PullRequest
0 голосов
/ 30 октября 2018

Мой основной вопрос: если я неоднократно копирую приложение Rails, так что существует много поколений одного и того же репо (то есть, различные итерации каталога и файлов приложения Rails), что мне нужно сделать, чтобы сервер работает нормально и избежать серьезных проблем?

Я пишу обучающее приложение , которое обучает пользователя задачам программирования. Сейчас он поддерживает только однофайловые задачи. Далее я хочу добавить поддержку задач с несколькими файлами, включая задачи HTML / CSS / JS и Rails (например, «добавить модель, которая делает то-то и то-то» или «добавить тест Minitest для такой-то функции» ). Пользователь будет обязан редактировать код Rails напрямую, и мое приложение автоматически запустит сервер и покажет результаты. После ответа на каждый вопрос (т. Е. Каждая задача выполняется) мое приложение автоматически переносит базу данных по мере необходимости и заново копирует репозиторий из архива - в основном, готовя сцену для следующего раза, когда пользователь выполнит задачу. (Ну, я надеюсь, что это хорошая идея.)

Поскольку приложения Rails настолько велики и сложны, конечно, невозможно создать и добавить отдельное приложение Rails для каждого вопроса. Вместо этого у меня будет много вопросов / задач, основанных на том же репо (установке). После того, как на каждый вопрос дан ответ (то есть выполнено каждое задание), база данных будет перенесена по мере необходимости, а репо скопирован заново из архива. Все идет нормально? (Я ожидаю проблем с использованием Git для этого ... поэтому я бы просто использовал для этого Minitar .)

Но, конечно, мне придется делать другие версии того же репо (используя ту же базу данных или, возможно, копию), когда я делаю другие группы вопросов. Например, мне может потребоваться куча вопросов / задач, связанных с использованием AJAX в Rails, и для этого мне нужно подготовить установку различными способами. Но если я просто создаю копию предыдущего репо, которая имеет свои собственные задачи, вызовет ли процесс копирования проблемы для последующего репо и его задач?

Я провел некоторое тестирование. Я уже подтвердил, что если я просто выполню cp -r repo1/ repo2/, а затем rails s в repo2, сервер для последнего запустится нормально. Хотя данные, записанные в repo2, не отображаются в repo1, я не могу создать модель с одноименным названием (что немного озадачивает). Я полагаю, что это может быть проблемой для некоторых вопросов, т. Е. Я не хочу, чтобы они запускались из одной и той же базы данных для всех репозиториев, даже если более поздние версии базируются на более ранних версиях. Поэтому всякий раз, когда я копирую репозиторий, я думаю, что я хочу сделать копию базы данных , как описано здесь . Звук верно?

Есть ли что-то еще, что мне нужно было бы сделать при создании этой функции, чтобы предотвратить проблемы, связанные с повторным копированием разных итераций одного и того же репо (и базы данных)?

1 Ответ

0 голосов
/ 30 октября 2018

Я думаю, вы делаете это более сложным, чем нужно. Все это можно сделать в git, используя ветви функций git, например, вопрос-1, вопрос-2, для каждого деривации и объединения его с задачами базы данных рейков рельсов, например, грабли дб: падение, грабли дб: создание, грабли db: migrate, rake db: seed, чтобы обеспечить правильную загрузку базы данных для каждой ветви.

Альтернативным подходом может быть добавление дампов SQL вашего конечного состояния базы данных в каждую ветвь функций и загрузка их с помощью задачи rake для загрузки базы данных в желаемое состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...