Генерация DDL для таблиц и индексов Sybase - PullRequest
1 голос
/ 27 января 2009

Я ищу инструмент командной строки для генерации DDL для таблиц и индексов (ничего более сложного не требуется) для некоторых таблиц Sybase в базах данных, о которых я забочусь. У меня есть доступ к инструментам с графическим интерфейсом для просмотра отдельных DDL, и я могу их вырезать и вставлять, но мне бы хотелось, чтобы что-то проходило по всем таблицам в базе данных и генерировало несколько хороших текстовых файлов, которые я могу проверить в CVS.

Я пытался использовать инструмент под названием ddlgen, который был предоставлен Sybase, но он просто выдавал исключения вроде этого:

bash-3.00# ./ddlgen -SdatabaseServer:4100 -Uusername -PsecretPassword -TDB -NdatabaseName 
U64: null: databaseName.dbo.firstTable
U64: null: databaseName.dbo.firstTable
        at com.sybase.ddlgen.container.UserTableContainer.getDependentDDL(UserTableContainer.java:1065)
        at com.sybase.ddlgen.container.UserTableContainer.open(UserTableContainer.java:1364)
        at com.sybase.ddlgen.container.UserTableMetaContainer.open(UserTableMetaContainer.java:94)
        at com.sybase.ddlgen.container.DDLBaseContainer.load(DDLBaseContainer.java:76)
        at com.sybase.ddlgen.container.DatabaseContainer.addChildren(DatabaseContainer.java:552)
        at com.sybase.ddlgen.container.DatabaseContainer.open(DatabaseContainer.java:104)
        at com.sybase.ddlgen.container.DatabaseMetaContainer.open(DatabaseMetaContainer.java:114)
        at com.sybase.ddlgen.DDLThread.run(DDLThread.java:89)

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

Ответы [ 5 ]

1 голос
/ 29 мая 2009

Вы также можете использовать Perls-based dbschema.pl

http://www.isug.com/Sybase_FAQ/ASE/section9.html#9.3.2

1 голос
/ 11 марта 2009

используйте команду ниже, чтобы получить дефинирование

defncopy -P tester1 -S sqppdb2 -U pmestr -D ppdb2 -o tab4 ppdb2..tab4

Спасибо

0 голосов
/ 28 января 2009

Другой способ сделать это - MyGeneration генератор кода (например, CodeSmith, но с открытым исходным кодом), который использует шаблоны для создания кода. Этот код может быть чем угодно - Sql, C # и т. Д. Я использую Sql Server, и я использовал несколько свободно доступных шаблонов для создания DDL по вашему усмотрению, а также для автоматического создания файлов сопоставления NHibernate - великолепно.

0 голосов
/ 15 февраля 2009

ddlgen даст вам то, что вам нужно, и работает очень хорошо. Похоже, у вас проблемы с окружающей средой с Java. Попробуйте еще раз и опубликуйте сообщение об ошибке полностью.

0 голосов
/ 28 января 2009

Загрузите ознакомительную версию Embarcadero DBArtisan и используйте его функцию извлечения для вывода DDL.

Вы можете включить Logging on DBArtisan (Logfile -> Log SQL), а затем посмотреть, какой SQL он отправляет в Sybase, чтобы получить таблицу DDL. Скопируйте и вставьте SQL-файл в файл журнала в сценарий, который запускается из командной строки и который может работать.

Заранее извиняюсь, если вы не используете Windows ... DBArtisan предназначен только для Windows.

...