Мне приходилось делать это много раз. Я в значительной степени использовать одни и те же предложения, перечисленные здесь, но резюмировать ...
/app/etc/local.xml
В системе управления версиями я храню эти файлы, каждый со своей собственной БД и кэширования данных , Эти модифицированные копии оригинального local.xml файла: - приложение/и т.д./production.local.xml - приложение/и т.д./staging.local.xml - приложение/и т.д./мой-dev.local.xml
Файл local.xml, созданный установкой, удаляется. Она заменяется на мягкую ссылке local.xml на соответствующий файл в каждой среде:
cd app/etc
ln -s production.local.xml local.xml
Заметка об управлении различными базах данных:
Тогда я обычно создаю новый каталог на уровень корневого каталога под названием/SQL и там я храню сценарии, как эти, которые используются для установки альтернативных сред:
- createdb.sql
- production.setup.sql
- staging.setup.sql
- мой-dev.setup.sql
createdb.sql получает работать как админ пользователя MySQL и просто создает базу данных и пользователя.
create schema magentoschema; create user magentouser;
grant all on magentoschema.* to 'magentouser'@'localhost';
set password for 'magentouser'@'localhost' = password('secret');
После создания базы данных вы можете перейти к первоначальной установке и получить туздЫшпр из базы данных:
mysqldump -u magentouser -p -h your.host.name magentoschema > magento.dump.sql
затем установить его в любую среде вы работаете в:
mysql -u magentouser -p -h localhost magentoschema < magento.dump.sql
Затем вам необходимо изменить имя хоста (и, возможно, некоторые другие параметры) в файле core_config_data. Самые основные выглядит следующим образом:
update core_config_data set value='http://staging.yourstore.com/' where config_id in (3,4);
Вам необходимо проверить правильность установки Magento, чтобы увидеть, что config_id для записей с веб/безопасной/base_url и веб/незащищенное/base_url в колонке пути. Это просто, этого нужно просто сделать запрос, как это на базе данных:
select * from core_config_data where value like 'http%';
Так создать * .setup.SQL-файлы с правильными именами хостов для каждой среды и запустить скрипт в MySQL так же, как вы сделали, чтобы загрузить базу данных:
mysql -u magentouser -p -h localhost magentoschema < staging.setup.sql
Удачи!
Как бы это выглядело, сохраним конфигурационный файл для каждой среды в отдельной ветви и сменим изменения? – Tom
Один из способов приблизиться к этому - полностью удалить приложение/etc/local.xml из исходного элемента управления. Затем добавьте local.xml.dev, local.xml.stage и local.xml.prod в исходный элемент управления. При развертывании на сцену у вас также есть скрипт, который при необходимости копирует соответствующую версию local.xml (т. Е. Cp local.xml.stage local.xml). – shaune
Я сохраняю имя файла одинаковым для каждой версии (туловище, сцена и т. Д.), А затем используйте '.svn-ignore', чтобы предотвратить перезапись производственных версий. Он также предотвращает случайные изменения любого рода. Некоторые владельцы Magento, такие как Nexcess, довольно хорошо разбираются в деталях 'local.xml', и я не хочу перезаписывать их тяжелую работу. – clockworkgeek