forum.bitel.ru
http://forum.bitel.ru/

слить два биллинга
http://forum.bitel.ru/viewtopic.php?f=1&t=933
Страница 1 из 1

Автор:  ghost_ufa [ 01 апр 2008, 16:29 ]
Заголовок сообщения:  слить два биллинга

Люди добрые, сами мы не местные, помогите кто чем может ;)

Есть 2 НАСа, каждый из которых обслуживался (волею судеб) своим биллингом. Сейчас встала задача их объединить. Есть ли возможность это сделать более-менее автоматизированно? Например, экспортировать карточки и статистику юзеров на одном и импортировать на другом...

Перенабивать юзеров руками ой как не хочется...

Автор:  Администратор [ 01 апр 2008, 22:32 ]
Заголовок сообщения: 

В данный момент подобный функционал отсутствует, т.к. задача весьма нетривиальная в общем своем случае. Основная проблема - дублирующиеся коды в 2х базах.
Если сложно перенести руками, вам придется самостоятельно составить скрипт переноса.

Автор:  ghost_ufa [ 02 апр 2008, 11:14 ]
Заголовок сообщения: 

какие коды? зачем коды? их-то можно перегенерить заново при импорте, а в экспорте просто сохранить связи. Например - экспортируя в XML.

Цитата:
вам придется самостоятельно составить скрипт переноса


А можно про это поподробнее?

Автор:  ghost_ufa [ 02 апр 2008, 11:48 ]
Заголовок сообщения: 

да, кстати - возможность экспорта/импорта ИМХО будет очень полезной и для всяческих апгрейдов/переустановок/миграций/етц...

Автор:  snark [ 02 апр 2008, 17:42 ]
Заголовок сообщения: 

ghost_ufa писал(а):
да, кстати - возможность экспорта/импорта ИМХО будет очень полезной и для всяческих апгрейдов/переустановок/миграций/етц...
а чем не устраивает mysqldump + mysql?
дампите:
Код:
mysqldump bgbilling > bgbilling.sql
запускаете mysql и говорите ему:
Код:
DROP DATABASE IF EXISTS bgbilling;
CREATE DATABASE bgbilling;
GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'localhost' IDENTIFIED BY 'bgbilling';
GRANT ALL PRIVILEGES ON bgbilling.* TO 'bill'@'%' IDENTIFIED BY 'bgbilling';
заливаете дамп:
Код:
mysql bgbilling < bgbilling.sql
пользуетесь ;)

Автор:  ghost_ufa [ 02 апр 2008, 18:10 ]
Заголовок сообщения: 

тем что так можно выполнить разве что перенос на другой сервер (хотя я бы для этого просто пожал таром каталог бгбиллинг в дереве майскуля). А если мне хочется допустим с версии 3,75 на версию 4 проапгрейдиться? ;) Вот и предлагается аналогичный дамп/рестор, но только в пространстве биллинга, а не его базы

Автор:  snark [ 02 апр 2008, 18:40 ]
Заголовок сообщения: 

ghost_ufa писал(а):
так можно выполнить разве что перенос на другой сервер
в рамках одного сервера прекрасно будет работать ;)
ghost_ufa писал(а):
просто пожал таром каталог бгбиллинг в дереве майскуля
о Боже ... это ж варварский и не кошерный метод ... я надеюсь Вы шутите ...

Автор:  ghost_ufa [ 03 апр 2008, 09:24 ]
Заголовок сообщения: 

Цитата:
о Боже ... это ж варварский и не кошерный метод ... я надеюсь Вы шутите ...


Ой как интересно! Мне же вот предлагают переносить биллинг на уровень ниже - так почему же переносить БД на уровень ниже это уже варварство? ;)

Автор:  Администратор [ 03 апр 2008, 10:33 ]
Заголовок сообщения: 

Код:
какие коды? зачем коды? их-то можно перегенерить заново при импорте, а в экспорте просто сохранить связи. Например - экспортируя в XML.

Большинство записей в базе идентифицируются уникальным числом (id, он же код). И все отношения указываются между кодами. Например у вас в первой базе договор с кодом 1 - ИП Пупков, а в другой вовсе Василий Анатольевич.
А к этому договору в каждой базе привязаны например, свои тарифы (опять же, их коды пересекаются).
Перегенерить их можно, но, как я уже говорил, задача не очень простая, в двух словах не опишешь. Берите описание базы (доступно для 4.3 на сайте) и пишите перенос.
XML позволяет делать лишь ограниченное число связей, доступных в реляционных БД. Собственно он позволяет указать лишь Many-To-One путем помещения одного узла в другой, и то если данный вид отношения существует только к одному типа сущностей.
P.S. Для обновления между версиями процедура описана. С данной задачей она почти не связана. Резервную копию можно сделать с помощью mysqldump, а затем обновлять. Если что не пойдет - просто откатить.
P.P.S. Само собой, что просто накатывая дамп базы не слить. Проблема опять же в совпадающих кодах.

Автор:  ghost_ufa [ 03 апр 2008, 12:52 ]
Заголовок сообщения: 

Цитата:
Берите описание базы (доступно для 4.3 на сайте)


спасибо ;) Структуру базы я таки знаю, поэтому и вызывает удивление фраза про проблематичность экспорта-импорта :) ХML - таки ПРИМЕР, но. А разве связи в биллинге не типа "один к многим"? Карточка - и привязаные к оной свойства. Ссылки же между разными сущностями (как в Вашем примере - с клиента на тарифы) делаются по генерируемым уникальным идентификаторам, существующим на время переноса.

Вобщем задача ну никак не сложнее экспорта справочников 1С(с их перекрестными ссылками) в текст :) Тока вот похоже что как обычно эта фича будет объявлена невостребованой :))

Цитата:
пишите перенос.



Хм... писать перенос самому - честное слово, мне и так есть чем заняться :) Да и как бы я совсем другим занимаюсь по работе, но все равно - благодарю за заботу ;)


Цитата:
Для обновления между версиями процедура описана


кто бы спорил - только вот процедура не самая простая и не самая автоматизированная. И совсем уж проблематичная при желании откатиться обратно БЕЗ резервной копии. А в случае наличия экспорта/импорта - выгрузить в старом и загрузить в новом, и готово.

Автор:  Администратор [ 03 апр 2008, 14:14 ]
Заголовок сообщения: 

Цитата:
Хм... писать перенос самому - честное слово, мне и так есть чем заняться :) Да и как бы я совсем другим занимаюсь по работе, но все равно - благодарю за заботу ;)

При продолжении полемики в подобном тоне я вынужден буду вас забанить.

Автор:  ghost_ufa [ 03 апр 2008, 14:27 ]
Заголовок сообщения: 

Значит такой тон - "пишите сами" - допустим TYT только из-под шапки?

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/