Исключение с Subsonic 2.2, SQLite и Migrations - PullRequest
0 голосов
/ 13 апреля 2010

Я играю с миграциями и создал простую миграцию, такую ​​как

public class Migration001 : Migration
    {
        public override void Up()
        {
            TableSchema.Table testTable = CreateTableWithKey("TestTable");
        }

        public override void Down()
        {

        }
    }

после выполнения переноса sonic.exe я получаю следующий вывод:

Setting ConfigPath: 'App.config'
Building configuration from c:\tmp\MigrationTest\MigrationTest\App.config
Adding connection to SQLiteProvider
Found 1 migration files
Current DB Version is 0
Migrating to 001_Init (1)
There was an error running migration (001_Init):
 SQLite error
near "IDENTITY": syntax error
Stack Trace:
   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] argum
ents, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle
 typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] argume
nts, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwn
er)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke
Attr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisib
ilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke
Attr, Binder binder, Object[] parameters, CultureInfo culture)
   at SubSonic.CodeRunner.RunAndExecute(ICodeLanguage lang, String sourceCode, S
tring methodName, Object[] parameters) in D:\@SubSonic\SubSonic\SubSonic.Migrati
ons\CodeRunner.cs:line 95
   at SubSonic.Migrations.Migrator.ExecuteMigrationCode(String migrationFile) in
 D:\@SubSonic\SubSonic\SubSonic.Migrations\Migrator.cs:line 177
   at SubSonic.Migrations.Migrator.Migrate() in D:\@SubSonic\SubSonic\SubSonic.M
igrations\Migrator.cs:line 141

Есть подсказки?

1 Ответ

0 голосов
/ 17 апреля 2010

Вы, наверное, единственный на планете Земля, кто пытался это сделать. Я не думаю, что код миграции когда-либо был завершен или протестирован с использованием sqlite, о чем свидетельствует ключевое слово IDENTITY, которое не следует использовать с sqlite. Subsonic в значительной степени ориентирован на работу с SQL сервером, поэтому необходимо внести множество изменений, чтобы все функции работали с другими базами данных. Существует улучшенный поставщик sqlite в одной из вилок subsonic2 на github, но subsonic2 (в настоящее время) является мертвым проектом, и никакие запросы на получение github не выполняются.

...