Тонкости Архивации на 007

Технические вопросы по UTM 5.0
Ответить
xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Тонкости Архивации на 007

Сообщение xxxupg »

Уважаемые вопрос...
сборка 007.
делаем архивацию списаний
достаточно ли просто создать потом новую таблицу так:
CREATE TABLE IF NOT EXISTS `discount_transactions_all` (
`id` int(11) NOT NULL auto_increment,
`account_id` int(11) NOT NULL default '0',
`incoming_rest` double NOT NULL default '0',
`outgoing_rest` double NOT NULL default '0',
`discount` double NOT NULL default '0',
`discount_with_tax` double NOT NULL default '0',
`service_id` int(11) NOT NULL default '0',
`service_type` int(11) NOT NULL default '0',
`discount_period_id` int(11) NOT NULL default '0',
`slink_id` int(11) NOT NULL default '0',
`discount_date` int(11) NOT NULL default '0',
`charge_type` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
или нужно чтобы в конце было обязательно:
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=99998888777;
Последний раз редактировалось xxxupg Сб июл 30, 2011 11:40, всего редактировалось 1 раз.

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Re: Тонкости Архивации на 007

Сообщение xxxupg »

xxxupg писал(а):Уважаемые вопрос...
сборка 007.
делаем архивацию списаний
достаточно ли просто создать потом новую таблицу так:
CREATE TABLE IF NOT EXISTS `discount_transactions_all` (
`id` int(11) NOT NULL auto_increment,
`account_id` int(11) NOT NULL default '0',
`incoming_rest` double NOT NULL default '0',
`outgoing_rest` double NOT NULL default '0',
`discount` double NOT NULL default '0',
`discount_with_tax` double NOT NULL default '0',
`service_id` int(11) NOT NULL default '0',
`service_type` int(11) NOT NULL default '0',
`discount_period_id` int(11) NOT NULL default '0',
`slink_id` int(11) NOT NULL default '0',
`discount_date` int(11) NOT NULL default '0',
`charge_type` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
или нужно чтобы в конце было обязательно:
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9999988887777;

lan-viper
Сообщения: 79
Зарегистрирован: Чт янв 13, 2011 20:16

Сообщение lan-viper »

Мне кажется, если не планируется в последующем восстановление старых данных, то можно без AUTO_INCREMENT, но я бы сохранял значения.

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

на архивные таблицы и работу с ними это не повлияет? если нет то и думать не буду =)

littlesavage
Сообщения: 120
Зарегистрирован: Вс ноя 22, 2009 02:41
Откуда: Чебоксары

Сообщение littlesavage »

discount_transactions_all не нужно пересоздавать.
Из нее только select и delete должны быть запросы. Ну и Optimize table еще.

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

littlesavage просто мне проще переименовать имеющуюся таблицу и создать новую... вариант это? тут главный вопрос AUTO_INCREMENT нужен или нет =) подскажите

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

xxxupg писал(а):littlesavage просто мне проще переименовать имеющуюся таблицу и создать новую... вариант это? тут главный вопрос AUTO_INCREMENT нужен или нет =) подскажите
Конечно. По крайней мере в 005, если в discount_transactions_all и discount_transactions_iptraffic_all не совпадали индексы, все стояло колом. Было такое после выключеиня питания, пришлось удалить несколько записей, чтобы выравнять значения.
Мне кажется, имеет значение только одинаковый автоинермент в этих таблиц.

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Попробуйте так.

CREATE TABLE dta LIKE discount_transactions_all

Затем сравните значения автоинкремента в этих двух таблицах. Если одинаковое, значит, оно копируется и это то, что Вам надо.

Быстрое свертывание таблицы с созданием новой можно делать так:

ALTER TABLE discount_transactions_all RENAME TO dta;
CREATE TABLE discount_transactions_all LIKE dta;

Более подробно в этой теме:
viewtopic.php?t=8316

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

Уважаемые... подскажите, создаю архивные таблицы, в отчётах по диал-ап пусто за период а в платежах всё ок...
в чём может быть проблема? очень нужно чтобы всё было :)

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Причин может быть четыре.

1) нет данных в архивной таблице
2) нет самой архивной таблицы
3) нет записи для этой таблицы в archives
4) ошибка в ядре UTM (это уже к разработчикам)

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

Сталкивался ли кто-нибудь при архивации с пунктом №4 ? :)

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Я сталкивался. При переходе с версии 006 на версию 007, если уже использовалась архивация, переставали выдаваться платежи, хотя в базе они были. Приходилось раскладывать ручками в согласии с границами архивов, и тогда они появлялись в отчетах. После этого написал конвертер архива для перехода с 006 на 007.

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

как я понимаю.... архивы должны быть одинакового периода? т.е. с 01.01.11 до 01.02.11 так?

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Да. У каждой группы таблиц в архиве должен быть одинаковый archive_id и одинаковые start_date и end_date.

Ответить