Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертация базы данных 
:(
    Опции темы
Gold Dragon
Дата 30.8.2013, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



Сразу суть.

Есть движок и есть определённая струртура базы. Задача - перевести данные из другого движка. Соответсвенно таблицы все разные.. Ну если грубо, то например, из 1С-Битрикс в Джумлу.

Соответсвенно я знаю что и где хранится.. Вот как это можно автоматизировать? Что-то типа: "это поле конвертируется в это", "значение в этом поле заменяется на это значение" и т.п.

У кого есть практика в подобном? Принимаются любые идеи.. Главное чтобы создание автоматизации и работа с этой системой не была сложнее чем перевод "ручками"


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
RBW
Дата 30.9.2013, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.9.2013

Репутация: нет
Всего: нет



Я бы написал небольшой скрипт, который обрабатывал бы конфиги(например ini) такого формата:

Код

[tables source]
a = users

[tables destination]
b = users
c = properties
d = avatar

[migration]
a.name = b.name
a.address = c.home
a.avatar = d.img


Скрипт смотрит секцию source, делает:
Код

$tables['source']['a'] = 'users';


Далее смотрит секцию destination делает:
Код

$tables['destination']['b'] = 'users';
$tables['destination']['c'] = 'properties';
$tables['destination']['d'] = 'avatar';


Получает все записи из source:
Код

'SELECT * FROM '.$tables['source']['a'];

и далее применяет к каждой строчке правила миграции т.е какое поле, куда переместить.

В общем какая-то такая логика.

Это сообщение отредактировал(а) RBW - 30.9.2013, 08:03
PM MAIL   Вверх
ksnk
Дата 6.10.2013, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 14
Всего: 386



Gold Dragon, Одно время у меня была такая же задача. Требовалось перенести (и уметь переносить) данные с одной системы в другую, свою. При этом сама моя система была незафиксирована и постоянно дорабатывалась.
Было сделано что-то такое:
Выделялась сущьность, к примеру - новость и сочинялся линейный массив новостей с ассоциативными полями, который потом сериализовался. Товары и категории также трансформировались в массив и сериализовались. То есть, была выработана самоочевидная схема хранения данных.
Были написаны в "старой системе" и в "новой системе" функции трансформации данных из существующей базы в "схему хранения" и каждая редакция новой базы имела функцию трансформации из "схемы хранения" в существующую в данный момент схему базы данных. 
Такая двухступенчатая трансформация позволяла развивать систему независимо от заполняемых данных.

Сейчас, я бы выбрал xml для хранения промежуточных данных, так как xmlreader позволяет работать с гигантскими объемами данных, а сериализация имеет ограничения.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1082 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.