Tôi phải làm điều này nhiều lần. Tôi khá nhiều sử dụng những gợi ý tương tự được liệt kê ở đây, nhưng để tóm tắt ...
/app/etc/local.xml
Trong điều khiển phiên bản tôi giữ những tập tin này, đều có riêng DB và bộ nhớ đệm dữ liệu của nó . Đây là các bản sao sửa đổi của tệp local.xml gốc: - ứng dụng/etc/production.local.xml - ứng dụng/etc/staging.local.xml - app/etc/my-dev.local.xml
Tệp local.xml được tạo bằng cách cài đặt sẽ bị xóa. Nó được thay thế bằng một local.xml softlink đến tập tin thích hợp trong từng môi trường:
cd app/etc
ln -s production.local.xml local.xml
Ghi chú về quản lý cơ sở dữ liệu khác nhau:
Sau đó, tôi thường tạo ra một thư mục gốc cấp mới gọi là/sql và trong đó tôi tiếp tục kịch bản như thế này được sử dụng để thay thế các môi trường thiết lập:
- createdb.sql
- production.setup.sql
- staging.setup.sql
- my-dev.setup.sql
createdb.sql được chạy như một người dùng quản trị MySQL và chỉ cần thiết lập cơ sở dữ liệu và người dùng.
create schema magentoschema; create user magentouser;
grant all on magentoschema.* to 'magentouser'@'localhost';
set password for 'magentouser'@'localhost' = password('secret');
Một khi bạn tạo cơ sở dữ liệu bạn có thể vào cài đặt ban đầu của bạn và nhận được một mysqldump của cơ sở dữ liệu:
mysqldump -u magentouser -p -h your.host.name magentoschema > magento.dump.sql
sau đó cài đặt nó vào bất cứ môi trường bạn đang làm việc tại:
mysql -u magentouser -p -h localhost magentoschema < magento.dump.sql
Sau đó, bạn cần thay đổi tên máy chủ (và có thể một số tham số khác) trong core_config_data. Ngoại hình cơ bản nhất như thế này:
update core_config_data set value='http://staging.yourstore.com/' where config_id in (3,4);
Bạn cần phải kiểm tra cài đặt Magento của bạn để xem những gì config_id là cho các mục với web/an toàn/BASE_URL và web/không an toàn/BASE_URL trong cột đường. Thật dễ dàng, jsut làm một truy vấn như thế này trên cơ sở dữ liệu:
select * from core_config_data where value like 'http%';
Vì vậy, tạo ra các .setup *.sql tệp với tên máy chủ chính xác cho mỗi môi trường và chạy tập lệnh trong mysql giống như bạn đã tải cơ sở dữ liệu:
mysql -u magentouser -p -h localhost magentoschema < staging.setup.sql
Chúc may mắn!
Làm thế nào điều này sẽ xem xét, chúng tôi sẽ giữ cho tập tin cấu hình cho mỗi môi trường trong một chi nhánh riêng biệt và hợp nhất các thay đổi trong? – Tom
Một cách để tiếp cận điều này là xóa hoàn toàn ứng dụng/etc/local.xml khỏi điều khiển nguồn. Sau đó, thêm một tệp local.xml.dev, local.xml.stage và local.xml.prod vào điều khiển nguồn. Khi bạn triển khai đến giai đoạn, bạn cũng có một kịch bản sao chép phiên bản local.xml thích hợp khi cần thiết (ví dụ: cp local.xml.stage local.xml). – shaune
Tôi giữ tên tập tin giống nhau cho mỗi phiên bản (thân cây, sân khấu, v.v.) và sau đó sử dụng '.svn-ignore' để ngăn các tên phát triển ghi đè lên các phiên bản sản xuất. Nó cũng ngăn chặn các thay đổi ngẫu nhiên của bất kỳ loại nào. Một số máy chủ nhận biết Magento như Nexcess khá giỏi về việc quản lý các chi tiết 'local.xml' và tôi không muốn ghi đè lên công việc khó khăn của họ. – clockworkgeek