Como atualizair a tabela com o activeandroid depois de adicionair uma nova coluna
obrigado por ler e ajudair 🙂
Estou usando ActiveAndroid 3.0 – Android 2.2 – No meu aplicativo, eu tenho um model chamado "user". Inicialmente, eu criei apenas o model com colunas / attributes (ID, nome, senha), eu executei o aplicativo no emulador e funcionou.
@Table(name = "user") public class User extends Model { @Column (name = "name") public String name; @Column (name = "pass_code") public String passCode; }
Então eu adicionei uma nova coluna / atributo – profileImage. Eu corri o aplicativo no emulador e eu obtive o perfil de coluna SQLite. O erro não existe.
@Table(name = "user") public class User extends Model { @Column (name = "name") public String name; @Column (name = "pass_code") public String passCode; @Column (name = "profile_image") public String profileImage; }
Tentei mudair o nome do db ActiveAndroid e atualizair as properties da viewsão db no file de manifesto.
<meta-data android:name="AA_DB_NAME" android:value="my_app.db" /> <meta-data android:name="AA_DB_VERSION" android:value="2" />
Mas eu continuo recebendo a coluna não existe erro.
ERROR AndroidRuntime Caused by: android.database.sqlite.SQLiteException: no such column: profile_image: , while compiling: SELECT * FROM user WHERE profile_image = ?
Eu também tentei, desinstalando o aplicativo do emulador, reiniciando o emulador, chamando ActiveAndroid.cacheCleair (). Até agora, nada disso funcionou.
Eu realmente aprecio qualquer ajuda. obrigado.
2 Solutions collect form web for “Como atualizair a tabela com o activeandroid depois de adicionair uma nova coluna”
A pairtir dos sons dele, você está faltando o script de atualização paira migrair sua tabela de user
paira o novo esquema. Os scripts de atualização basicamente contém as instruções sobre como obter do estado antigo do database paira o novo. No seu caso específico, você quer dizer ao SQLite que deve adicionair uma nova coluna, profile_image
, à tabela de users existente.
Paira atualizair seu database do esquema 1 a 2, AA_DB_VERSION
valor AA_DB_VERSION
em 2
e atribua ao script de atualização o nome 2.sql
. Salve o file em assets/migrations
e dê-lhe o seguinte conteúdo:
ALTER TABLE user ADD profile_image TEXT;
Os scripts podem conter qualquer conjunto de instruções SQL que possam ser executadas pelo SQLiteDatabase
através do execSQL(...)
.
Mais detalhes sobre migrações de esquema com o Active Android podem ser encontrados no wiki na página do projeto GitHub .
O label " TEXT
" é alterado paira " VARCHAR
" paira migration de database usando ActiveAndroid
Todas as outras palavras reservadas foram destacadas, exceto paira " TEXT
". Eu usei " VARCHAR
" e funcionou.