Объединение двух серверов

Bloomfield

Величайший
Проверенный
Сообщения
721
Розыгрыши
0
Решения
1
Репутация
1 360
Реакции
351
Баллы
1 523
Интересует такой вопрос как объединение двух баз данных в одну, с сохранением предметом, хотелось бы услышать как это происходит на практике, как бороться с дубликатами в базе, и прочие моменты которые могут возникнуть во время объединения

Сборка ява, бд mysql
 

добавляется префикс и всё
 
добавляется префикс и всё
префикс к никам? меня интересует замена Obj_id, может можно просто вычесть определенную сумму и накатать на существующую базу?
и еще вопрос, есть ли ограничение на obj_id у чаров\шмоток
 
Нужно пилить мержер. Получать все objid и если есть повтор выдавать новый и заменять во всех зависимых таблицах. Да лимит на objid есть посмотреть его можно в IdFactory как правило он равен 2147483647.
 
префикс к никам? меня интересует замена Obj_id, может можно просто вычесть определенную сумму и накатать на существующую базу?
и еще вопрос, есть ли ограничение на obj_id у чаров\шмоток
Зависит от сорцов - а так по стандарту Integer.MAX_VALUE
 
Сам уже не раз делал слияние данных двух серверов - не так уж это и сложно.
Пишется скрипт на объединение и все. Скрипт при переносе генерит новые objId, именам добавляет префикс если надо и т.д.
Чисто для примера - один из старых вариантов скрипта на перенос конкретно персов и всех их данных в овероподобной сборке.
 
Последнее редактирование модератором:
Нужно пилить мержер. Получать все objid и если есть повтор выдавать новый и заменять во всех зависимых таблицах. Да лимит на objid есть посмотреть его можно в IdFactory как правило он равен 2147483647.
а что нибудь подобное есть в шаре уже?

не обновил сначала, выше нашел, спасибо

Код:
    public static final int FIRST_OID = 0x10000000;
    public static final int LAST_OID = 0x7FFFFFFF;
поставил FIRST_OID = 0x10000000;
все равно он не генерит с 1, хотя если вручную в базе оставляешь id = 1, то все нормально, чар играет

и можно к скрипту еще config.php?
 
а что нибудь подобное есть в шаре уже?

не обновил сначала, выше нашел, спасибо


поставил FIRST_OID = 0x10000000;
все равно он не генерит с 1, хотя если вручную в базе оставляешь id = 1, то все нормально, чар играет

и можно к скрипту еще config.php?

Если в нормальных понятных для вас числах то:
public static final int FIRST_OID = 0x10000000; == 268435456 //первый id
public static final int LAST_OID = 0x7FFFFFFF; == 2147483647 //последний id
 
Если в нормальных понятных для вас числах то:
public static final int FIRST_OID = 0x10000000; == 268435456 //первый id
public static final int LAST_OID = 0x7FFFFFFF; == 2147483647 //последний id
я ставлю FIRST_OID = 0x00000001; и все равно отсчет не начинается именно с него, переводить с 16 в 10 я и без вас умею)
 
и можно к скрипту еще config.php?
тебе это не особо поможет, т.к. там еще куча всего юзается
скрипт чисто как пример взять можно того, в каком направлении писать
 
Последнее редактирование модератором:
я ставлю FIRST_OID = 0x00000001; и все равно отсчет не начинается именно с него, переводить с 16 в 10 я и без вас умею)
зачем тебе с 1 начинать?
извлекаешь из нужных таблиц максимальный существующий UID и отсчет для перенесенного ведешь уже от этого значения.

смотри код выше, функцию getLastUid.
 
Назад
Сверху Снизу