Próbuję zbudować naprawdę proste DB do przechowywania wyniku gry Hangman.

Zbudowałem podmiot:

@Entity (Tablename = "wyniki") Klasa danych DBScore (@primarykey Var Pseudo: String = "", Var Wynik: int = 0) {

}

// Metoda konwersji Aby przejść z modelu DB do modelu Kotlin Model Fun List.AsDomainmodel (): List {Return Map {Wynik (pseudo = It.pseudo, wynik = IT.Store)}

}

Aby przedejść DB z próbkowymi wartościami za pomocą pliku dB

 INSTANCE = databaseBuilder(
                    context.applicationContext,
                    AppDataBase::class.java,
                    "app_database"
                )
                    .createFromAsset("database/scores.db").build()

Stworzyłem następujący plik dB do tego: https://wetransfer.com/downloads/c534d62136c94f17c0111144837/6FF2B7.

Ale dostaję błąd i nie rozumiem, co jest nie tak z moim dB:

Spowodowane przez: java.lang.illegalstateException: Baza danych wstępna ma nieprawidłowy schemat: wyniki (com.example.hangmangame.database.entity.dbscore). Oczekiwane: TableInfo {Name = 'wyniki', kolumny = {pseudo = kolumna {Nazwa = 'pseudo', Type = 'Tekst', affinity = '2', Notnull = true, PrimarykeYposition = 1, domyślnaValue = 'null'}, Wynik = kolumna {Nazwa = "Wynik", Type = 'Integer', Affinity = '3', Notnull = true, PrimandekeYposition = 0, domyślnaValue = 'null'}}, obcokami = [], Indices = []} Znaleziono: TableInfo {Name = 'wyniki', kolumny = {wynik = kolumna {Nazwa = "wynik", Type = 'Integer', Affinity = '3', Notnull = False, PrimandePosition = 0, DefaultValue = 'null'}, pseudo = Kolumna {Name = 'Pseudo', Type = 'Tekst', Affinity = '2', Notnull = true, PrimandePosition = 1, DefaultValue = 'null'}}, obcokami = [], indeksy = []}

Wydaje się być problem z kolejnością kolumn, ale dla mnie SQL nie jest na to wrażliwa.

Thx za każdą pomoc.

Pozdrowienia

Quentin.

0
Quentin M 11 październik 2020, 17:54

1 odpowiedź

Najlepsza odpowiedź

Pokój oczekuje score, aby być NOT NULL. Twoja wstępnie zaludniona schemat bazy danych ma go jako NULL, najwyraźniej na podstawie błędu.

2
CommonsWare 11 październik 2020, 14:57