Re: migrate выдал ошибку

TGS 4.63

при использовании процедуры CSDNmigrate на тестовой базе
на этапе Restore появилась ошибка


SQL Server Error: SQL State: 01000, SQL Error Code: 3621
The statement has been terminated.
SQL State: 23000, SQL Error Code: 547
INSERT statement conflicted with COLUMN CHECK constraint 'C_PRJTYPES_PRJTYPE_NOTE_GEN_TYPE'. The conflict occurred in database 'test', table 'PRJ
===
INSERT INTO PRJTYPES (PRJTYPE_ID, PRJTYPE_NOTE, PRJTYPE_NAME, PRJTYPE_ICO, CREATOR, CREATE_DATE, CHANGER, CHANGE_DATE, PRJTYPE_NOTE_TEMPLATE, PRJTYPE_NOTE_GEN_TYPE)
VALUES (:PRJTYPE_ID, :PRJTYPE_NOTE, :PRJTYPE_NAME, :PRJTYPE_ICO, :CREATOR, :CREATE_DATE, :CHANGER, :CHANGE_DATE, :PRJTYPE_NOTE_TEMPLATE, :PRJTYPE_NOTE_GEN_TYPE)
===============================
что делать в таком случае ?
первое что приходит на ум ... взять с установочного диска TGS пустую базу и сделать RESTORE в неё
Поможет ли это исправить положение ?

спасибо

Re: migrate выдал ошибку

хотелось бы получить ответ
и ещё - где бы почитать подробнее, что делает CSDNmigrate
в документации  о ней - ничего

Re: migrate выдал ошибку

kostic писал(а):
где бы почитать подробнее, что делает CSDNmigrate
в документации  о ней - ничего

На вашем дистрибутивном диске версии 4.6.3 находится каталог "Документация", в нем еще один каталог "Установка и настройка системы", в котором есть файл "Установка и настройка системы.doc", в нем есть раздел номер 7 "Миграция баз данных TechnologiCS", в нем описана данная утилита.

Re: migrate выдал ошибку

kostic писал(а):
TGS 4.63

Опишите историю БД, откуда она была взята, какой версии она была изначально, на каких платформах с ней работали, какие обновления ставились и т.д.


что делать в таком случае ?

Если у вас есть рабочий оригинал БД, с которой делали бэкап, то:
1. откройте справочник видов документов
2. пройдите по каждому виду документа, сначала измените значение поля "Способ генерации нового значения номера" на другое и сохраните изменения, затем верните старое значение и снова сохраните.
3. Сделайте бэкап с этой БД с помощью CSDNMigrate и попробуйте его восстановить, этой ошибки больше быть не должно.


первое что приходит на ум ... взять с установочного диска TGS пустую базу и сделать RESTORE в неё
Поможет ли это исправить положение ?

Нет, база данных каждый раз создается заново.

Re: migrate выдал ошибку

история БД : начинали с TGS 2.0 (Interbase), импортировали данные, потом 2.42 и т.д
перешли на SQL, сейчас 4.6.3.0(8476) SQL

В докумендации "Миграция баз данных TechnologiCS" прочитали, что она нужна
для перехода с Interbase на SQL или назад ... 

- чем эта утилита отличается от штатных Backup-Restore SQL ?
если базу переносим с одного сервера на другой
надо пользоваться не Backup-Restore SQL, а CSDNmigrate?

- что происходит с базой, когда она обрабатывается CSDNmigrate?
========================================================
Посмотрели справочник Виды документов в демо-базе
отличие в том что первой строкой в нашей рабочей базе стоит запись у которой в наименовании  *Создан для преобразования документации!*
в комментарии **** Создан при конвертиции БД IndustriCS ***
а в демо-базе такой строки нет.
Может в этой строке всё дело ?

кстати в окне "Способ генерации нового значения номера" и в демо и в рабочей базе стоит выбор "Новое значение каждый раз при обращении к генератору"
можно ещё выбрать "На основе количества уже выбранных документов"
Руками править значения здесь нельзя, поэтому поправили и вернули назад в закладке "Значения генераторов обозначений документов", запустили Migrate - ошибка та же на этой же таблице.
Спасибо

Re: migrate выдал ошибку

прошу ответить
хотелось бы до конца разобраться с этим вопросом

Re: migrate выдал ошибку

kostic писал(а):
история БД : начинали с TGS 2.0 (Interbase), импортировали данные, потом 2.42 и т.д
перешли на SQL, сейчас 4.6.3.0(8476) SQL

А на какой версии TCS переходили с IB на MS?


В докумендации "Миграция баз данных TechnologiCS" прочитали, что она нужна
для перехода с Interbase на SQL или назад ...
- чем эта утилита отличается от штатных Backup-Restore SQL ?

CSDNMigrate создает бэкап базы в формате, независимом от вида SQL-сервера, поэтому он может восстановить данные как в Interbase, так и в MSSQL. Собственно, только эта утилита умеет делать перенос базы с IB на MSSQL и обратно, это одно из ее назначений.


если базу переносим с одного сервера на другой
надо пользоваться не Backup-Restore SQL, а CSDNmigrate?

При переносе базы с одного сервера на другой лучше все-таки использовать CSDNMigrate, так как он пересоздает базу и все делает корректно, устанавливает правильные настройки БД и т.д. Медленнее, конечно, зато надежнее.



кстати в окне "Способ генерации нового значения номера" и в демо и в рабочей базе стоит выбор "Новое значение каждый раз при обращении к генератору"
можно ещё выбрать "На основе количества уже выбранных документов"
Руками править значения здесь нельзя

Ну так надо зайти под пользователем, который имеет право на исправление этого поля!


поэтому поправили и вернули назад в закладке "Значения генераторов обозначений документов", запустили Migrate - ошибка та же на этой же таблице.

Потому что исправление этих значений никак не влияет на причину ошибки...

Re: migrate выдал ошибку

ок
всё получилось, пересоздали значения 
в окне "Способ генерации нового значения номера", как вы и посоветовали, и ошибка ушла
Спасибо

Re: migrate выдал ошибку

Всегда делали backup средствами sql, а нынче попробовали Migrate и для одной из БД получили:
   Операция завершена с ошибками
Cannot open file d:\.......\v-2\f-2_s4

Файл .cbk получился маленьким и БД не восстанавливается. 
Можно ли это исправить?