Я все еще работаю над установщиком Wix, который включает замену некоторых команд MySql.
В частности, я хочу, чтобы установщик запускал скрипт, который создает пользователя, а затем, используя этого пользователя, я хочу, чтобы установщик запускал скрипт, который создает базу данных и создает таблицы. (Похоже, что установщик должен быть в состоянии сделать это.)
Я уже писал о пользователе, но пока не смог понять.
Итак, пропустим это на минуту, давайте предположим, что мой пользователь существует. У этого пользователя нет пароля. Без установщика, я обычно делаю команду для запуска моего скрипта, который создает базу данных и таблицы:
mysql --user = myname
Это прекрасно работает, поэтому я знаю, что мой скрипт работает.
Две проблемы, которые я вижу в Wix, и я надеюсь, что кто-то может либо объяснить, либо опубликовать дополнительные примеры (я лучше узнаю, увидев другие примеры).
1) похоже, отсутствует пароль.
В файле .wxs у меня есть:
<util:User Id='SQLUser' Name='[SQLUSER]' />
<Component Id='SqlComponent' Guid='7B524167-D8CF-465E-AEE8-6B70CF712A3A' KeyPath='yes'>
<sql:SqlDatabase Id='SqlDatabase' Database='adatabase' User='SQLUser' Server='[SQLSERVER]'
CreateOnInstall='yes' DropOnUninstall='yes' ContinueOnError='yes'>
<sql:SqlScript Id='mynewdb' BinaryKey='mynewdb' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
</Component>
<Binary Id='mynewdb' SourceFile='thisismyscript.sql' />
<Property Id='SQLUSER'>myname</Property>
<Property Id='SQLSERVER'>localhost</Property>
(это все встраивается в нужные места в файле .wxs, и файл прекрасно компилируется ... просто когда я запускаю .msi, моя база данных не была создана.)
Единственный способ оставить свойство пароля пустым - добавить этот тег администратора. Я не уверен, что здесь делать.
- Вторая проблема заключается в том, что в SQLComponent мне пришлось записать имя базы данных, но, конечно, эта база данных на самом деле еще не существует. Это проблема? (Я также попытался создать базу данных вручную, чтобы при запуске MSI-файла она уже была там ... но тогда больше ничего не происходило)
Я также запустил msiexec с ведением журнала, и похоже, что мой sql-скрипт выполняется ... в журнале нет ошибок, которые я вижу.
Помощь? Это действительно похоже на то, что должен сделать установщик ... и я просто делаю что-то не так ...
Заранее спасибо!
-Adeena