Биллинговая система Nodeny
26 Ноября 2024, 06:56:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Перенос данных допполя с Н49 -> Н+  (Прочитано 4857 раз)
artful
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« : 22 Апреля 2015, 15:41:03 »

Всем привет! Задавал тот же вопрос в теме "Миграция с 50.32", возможно та тема састарела. Подскажите пожалуйста следующее: в 49-м у меня было дополнительное поле "Комментарий", при переходе на Н+ оно не перенеслось. Вот создал я такое же дополнительное поле в Н+, а можете, если это возможно подсказать как сделать, чтобы данные из старой базы этого поля перенести в новую. Может скрипт таковой имеется. А то придется порядочно информации руками перепечатывать.
Записан
artful
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #1 : 22 Апреля 2015, 16:21:58 »

Вопрос решил самостоятельно Улыбающийся
Записан
cojiict
Старожил
****

Карма: 0
Offline Offline

Сообщений: 341


Просмотр профиля Email
« Ответ #2 : 22 Апреля 2015, 16:25:16 »

коментар до чого? до абонентських записів?
Код:
ALTER TABLE `users` CHANGE `comment` `comment` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

А взагалі найкраще так
 
Код:
mysql -p
use bill;
source /.../from_50.32_to...txt;
все переноситься без проблем
Записан
artful
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #3 : 22 Апреля 2015, 20:41:12 »

Це типу було допполе як наприклад Вулиця, Будинок, Квартира, Телефон і вони за допомогою наступного перенеслись:

Код:
mysql -p
use bill;
source /.../from_50.32_to...txt;

А ось воно ні.
Я вирішив проблему за допомогою скрипта, котрого знайшов на форумі і трохи під себе переробив, перед цим заливши паралельно дамп зі старої бази в bill49 і з адмінки створив Дополнительное поле _adr_comment:

Код:
#!/usr/bin/perl
use DBI;
my $dsn = 'DBI:mysql:bill:localhost';
my $db_user_name = 'root';
my $db_password = 'synthntktrjv';
my ($uid, $mac_ok, $x);
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
$x=0;
while($x<574) {
my $sth = $dbh->prepare(qq{
SELECT parent_id, field_value from bill49.dopvalues
        WHERE  parent_id=$x AND dopfield_id=10 AND revision=(
                SELECT MAX(revision)
                FROM bill49.dopvalues
                WHERE parent_id=$x AND dopfield_id=10);
              });
$sth->execute();
($uid, $coment) = $sth->fetchrow_array();
$sth->finish();
$dbh->do("UPDATE bill.data0 SET _adr_comment='$coment' WHERE uid=$x");
print "$x, $coment\n";
$x++;
}
$dbh->disconnect();

І все залилось туди куди потрібно Улыбающийся
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!