Рубин на Рельсах Новичок - PullRequest
       24

Рубин на Рельсах Новичок

1 голос
/ 02 февраля 2009

Я унаследовал приложение Ruby on Rails, которое имеет проблему. Я на полпути к некоторым книгам по Rails, но пока не видел ответа на некоторые вопросы.

  1. Какой лучший способ сделать резервную копию приложения? Могу я просто tar -cvzf app.tgz app? Я пока не знаю, имеет ли приложение базу данных sqlite3 или подключается к серверу БД.

  2. Как лучше всего перенести приложение на другой сервер для тестирования? Опять же, я не знаю, поддерживает ли это sqlite3 или сервер базы данных.

Спасибо

Michael

Обновление : Да, я буду использовать контроль версий. Там нет сейчас. Вопрос, на который я пытался ответить: насколько мобильна директория приложения; если я хочу перенести все приложение на другой компьютер, нужно ли мне брать с собой что-нибудь еще?

Ответы [ 8 ]

3 голосов
/ 09 февраля 2009

Я пока не знаю, имеет ли приложение базу данных sqlite3 или подключается к серверу БД.

Посмотрите файл database.yml в каталоге config. Линия адаптера скажет вам, какую БД она использует.

3 голосов
/ 24 сентября 2009

Хороший способ резервного копирования кода, который я нашел, - это использовать git и перенести его в пустой репозиторий, который хранится в Dropbox (http://getdropbox.com)

Рабочий процесс выглядит примерно так (при условии, что система на основе Unix, такая как OSX, если Windows, соответственно скорректирует пути)

Создайте локальное приложение и сделайте из него git-репо:

cd ~/Rails
rails my_app
cd my_app
git init
git add .
git commit -m "first commit"

Затем в вашем каталоге Dropbox создайте пустой репозиторий (я использовал каталог с именем 'git' под ним)

cd ~/Dropbox/git
mkdir my_app.git
cd my_app.git
git init --bare

Теперь вернитесь к своему приложению, добавьте Dropbox в качестве источника и нажмите на него

cd ~/Rails/my_app
git remote add origin ~/Dropbox/git/my_app.git
git push origin master

После внесения изменений в каталог ~ / Rails просто нажмите на репозиторий Dropbox, и он будет сохранен на их серверах (и вы можете легко поделиться репо на всех машинах, которые вы подключили к Dropbox)

2 голосов
/ 03 февраля 2009

Я бы посмотрел на Capistrano - это инструмент для развертывания / управления.

По своей сути, он заберет ваше приложение из системы контроля версий, развернет и настроит сервер назначения и запустит любые миграции баз данных.

Вы можете использовать его для указания на несколько серверов (таких как тестирование, подготовка и производство).

Чтобы ответить на ваш фактический вопрос, вы можете переместить свое приложение, просто скопировав каталог Rails (примечание: не просто каталог приложения, но также родительский каталог). Управлять вашей базой данных нужно будет отдельно - в случае sqlite вы можете просто получить файлы, если вы используете MySQL, вы, вероятно, сбросите базу данных и перенастроите ее на следующем сервере.

1 голос
/ 24 сентября 2009

Вы можете просто скопировать весь каталог. Тем не менее, обычной практикой является «замораживание» вашей установки Rails и ваших гемов сначала в каталог, если это еще не было сделано. Это гарантирует, что на тестируемом сервере, который вы копируете, приложение также использует ту же версию Rails и все установленные гемы.

Если это было сделано, у вас должен быть каталог vendor / rails /.

Вы можете «заморозить» свой Rails, запустив:

rake rails:freeze:gems

Вы также захотите убедиться, что Ruby является одинаковой или похожей версией на обоих хостах. У меня были проблемы с 1.8.7 против 1.9.1 - имейте это в виду.

0 голосов
/ 24 сентября 2009

GIT (или SVN) + Capistrano для кода, для данных есть опции:

  • Существует несколько плагинов rails для создания дампов базы данных и ресурсов вашего приложения. Мой любимый это github.com/toy/dump. Вы можете запустить rake dump:create и rake dump:restore. Наиболее интересной является интеграция с Capistrano - cap dump:mirror:down загружает ресурсы приложения и базу данных, создает клон вашего сайта на локальном компьютере.

  • Если вам нужно автоматическое резервное копирование вашего приложения для хорошего сна, я бы порекомендовал вам Backup My App service. Это полное решение для автоматического резервного копирования приложений рельсов, вам просто нужно установить их плагин, и они автоматически выполняют остальную часть процесса. Они хранят историю ваших резервных копий в течение нескольких недель, вы можете просматривать их через браузер и автоматически восстанавливать любую из них.

0 голосов
/ 02 февраля 2009

Чтобы «сделать резервную копию» кода для приложения, вы можете использовать git с http://github.com. Это дает вам стороннюю область, где вы можете разместить свой код, но я думаю, что вы должны заплатить за частные репозитории (около $ 12 /месяц). В качестве альтернативы, просто установите git-сервер на другом компьютере в вашем офисе и разместите его там.

«Настройки базы данных» хранятся в config / database.yml, и это сообщит вам информацию, которую вы должны знать о базе данных.

0 голосов
/ 02 февраля 2009

Контроль версий должен быть хорошим началом. Вы должны немедленно выяснить, что является резервной базой данных, и убедиться, что у вас есть не только 1 файл / сервер базы данных, но и второй экземпляр для тестирования. Не связывайтесь с производственными данными.

0 голосов
/ 02 февраля 2009

Для обоих я бы предложил систему управления версиями. Возможно Subversion

Вот что я сделал по тем же причинам.

Если вы посмотрите на настройки базы данных в config / database.yml, вы обнаружите, какая база данных используется. Если это sqlite, просто убедитесь, что это часть хранилища Subversion.

Кроме того, когда вы выполняете экспорт или извлечение на другом сервере, просто убедитесь, что сервер имеет доступ к базе данных, где бы она ни была.

...