Magento & Subversion (SVN) - Получение среды разработки началось?

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

Что я сделал до сих пор:

  1. Настройте веб-хостинг на хозяине, который использует cPanel. Мой 'Живой' сайт (mysite.com) будет проживать в ~/public_html/.
  2. Созданный субдомен 'развития' (dev.mysite.com), который указывает на ~/public_html/dev/.
  3. Начатый хранилище SVN внутри ~/svn/. Мой repo содержит отделения папок | признаки | ствол.
  4. Импортированный недавно непросмоленный магнето tarball (v.1.3.2.4) в мой repo в trunk/magento.
  5. Созданный две базы данных b. a. mysite_live и b. mysite_dev.
  6. Проверенный кодекс магнето от моего repo в ~/public_html/dev/(dev.mysite.com)
  7. Управлял первоначальным Инсталлятором Magento, который населил мой mysite_dev Db и создал некоторые файлы конфигурации (app/etc/local.xml - единственный, о котором я знаю - могут быть другие?).

Вот то, где я застреваю:

Таким образом, у меня есть полностью функциональный Magento, Устанавливают в моем dev космосе. Что я хочу сделать, теперь, добираются, мой живой сайт развернулся идентичный моему dev сайту как отправная точка. Поскольку конфигурация отличается в файле app/etc/local.xml; плюс магазины Magento стоимость для {{base_url}} в базе данных это не столь легко как обновление моего svn ствола с моего dev сайта, затем экспортируя/импортируя db.

Поскольку я добираюсь далее в будущем с этим, я хочу для там быть прямым путем, чтобы выдвинуть все на моем dev сайте через SVN и на мой живой сайт, наряду с хранением баз данных, синхронизировавших за исключением ценности {{base_url}}. Я прочитал пару сообщений форума в другом месте, что ссылка, используя svn:ignore, чтобы избежать определенных определенных для окружающей среды файлов и справочников, но не знает, как разбудить набор на моем живом сайте и гарантировать, что все правильно синхронизировано.

Я должен просто проверить копию основного кодекса от trunk/magentoo от моего repo до пространства моего живого сайта, затем управлять устанавливанием, затем установить svn игнорировать local.xml и предполагать, что они идентичны за исключением местных различий?

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

Как примечание стороны - я также должен создать 'Демонстрационный' раздел кодекса для другого субдомена; показать людям как доказательство понятия. Я, вероятно, просто пересеку тот мост, когда я приеду в него. Возможно, это будет все иметь смысл к тому времени, когда я добираюсь до той задачи.

tl; версия доктора - как я управляю code&Db Magento development&live с SVN?

Благодаря всем для того, чтобы занять время, чтобы читать и ответить!

19
задан PlasmaFlux 13 January 2010 в 17:00
поделиться

3 ответа

Преимущества языка сценариев в jvm. Бесшовное взаимодействие с скомпилированным кодом java.

-121--3808444-

Необходимо использовать селектор .class .

// select every <select> element with classname "yourclassname"
$('select.yourclassname').each(function() {
    // $(this) now refers to one specific <select> element
    // we append an option to it, like you asked for
    $(this).append(
        $('<option value="foo">Bar</option>');
    );
});

Для получения дополнительной информации о правильном выборе элементов с помощью jQuery см. http://docs.jquery.com/Selectors .

-121--3255140-

Сначала необходимо проверить установленную версию программы. Таким образом, копия программы в репо является рабочей, которую вы можете фактически использовать. После этого потребуется игнорировать некоторые файлы и каталоги, чтобы можно было запустить другие среды. local.xml является хорошим примером, но также набором игнорировать следующее:

/var/report/*
/var/log/exception.log
/var/log/system.log
/var/locks/*
/var/session/*
/var/cache/*
/var/tmp/*
/media/tmp/*

Возможно, есть другие, но это должно дать вам хорошее начало. Если вы думаете, что вы можете внести изменения в local.xml (и вы можете), скопируйте local.xml в local.xml.dist и проверьте версию .dist в репо. При оформлении заказа на других сайтах все равно придется вносить изменения вручную, но отследить это будет проще.

Для базы данных обычной практикой является выполнение mysqldump в среде разработки и сохранение его в репозитории.

mysqldump -u user -p database > mysqldump.sql

Необходимо ввести пароль для этой базы данных. Теперь копия в репо является полной копией сайта. Для настройки другой среды необходимо извлечь всю базу кода, а затем импортировать файл MySQL в базу данных.

Помните, что при этом (и при каждом обновлении базы данных в репо, а затем при необходимости обновления изменений в других средах) необходимо будет изменить {base_url} и {secure_url} в базе данных. Я видел некоторые среды, в которых разработчики создавали сценарии для автоматического выполнения этой задачи.

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

Надеюсь, что это поможет. Если у вас есть другие конкретные вопросы, дайте мне знать.

Спасибо, Джо

21
ответ дан 30 November 2019 в 03:48
поделиться

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

Для своего проекта я построил свое живое окружение, установив Magento с нуля, и только что просмотрел каталоги из SVN на этом этапе:

/app/code/local/MyOrg
/app/design/frontend/default/myorg
/skin/frontend/default/myorg

Любые настройки, которые вы сделаете, должны быть в одном из этих каталогов.

Я управляю этой директорией вручную на live-сервере:

/app/etc/modules

Вам нужно создать там файл только в том случае, если вы сами создаете новый модуль.

9
ответ дан 30 November 2019 в 03:48
поделиться

Я написал Диспетчер модулей специально для решения этих проблем.

Я не рекомендую управлять версиями приложения / etc / local.xml, чтобы каждая среда могла иметь разные учетные данные базы данных, но я рекомендую управлять версиями всего остального с помощью modman. Кроме того, я рекомендую, чтобы modman запустил скрипт, который очищает кеш Magento и применяет обновления базы данных, такие как найденное здесь .

При правильном использовании вы можете выполнить «svn commit» в своей магистрали и просто запустить «modman update-all» в других ваших средах (включая live) для обновления. Для более безопасного обновления 1.4 вы можете запустить

touch maintenance.flag; sleep 2; modman update-all; rm maintenance.flag
4
ответ дан 30 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: