J'utilise Sugar ORM dans mon projet. J'ai besoin de déposer une colonne dans une table sqlite dans ma prochaine version de l'application. J'ai vérifié la documentation sur la migration de ORG Sugar, mais je ne peux pas trouver le moyen d'y déposer une colonne.Sujet ORM supprimant une colonne lors de la mise à jour de la base de données
Répondre
Suivez ces étapes:
- Créez un dossier sugar_upgrades nommé dans votre dossier actifs
- Créez un fichier nommé < version> .sql dans ce dossier, ce qui correspond à la version de base de données. par exemple. 1.sql, 2.sql Ce fichier contiendrait tous mettre à jour/modifier les requêtes pour cette version particulière.
- Changer le champ de métadonnées VERSION dans AndroidManifest.xml à la version appropriée
Pour plus de détails consultez sugar migration
Parce que android-sugarorm
(sugarorm
) utilise SQLite
dessous, il est pas l'utilisation possible ALTER TABLE
pour supprimer un colonne (champ), donc ce n'est pas fait automatiquement.
SQLite
prend en charge un sous-ensemble limité deALTER TABLE
. La commandeALTER TABLE
dansSQLite
permet à l'utilisateur de renommer une table ou d'ajouter une nouvelle colonne à une table existante. Il n'est pas possible de renommer une colonne, de supprimer une colonne ou d'ajouter ou de supprimer des contraintes d'une table.
En SQLite
vous pouvez:
(1). créer une nouvelle table comme celle que vous essayez de modifier (sans la colonne à supprimer)
(2). copier toutes les données (sauf la colonne que vous voulez supprimer)
(3). déposer la vieille table
(4). renommer la nouvelle table, à l'ancien nom.
Voir aussi Migrating database from previous version
SQLite FAQ
add et colonne de mise à jour peut se faire dans les étapes ci-dessus. mais pouvons-nous faire tomber une colonne? –
Pas sûr mais vous pouvez l'essayer, c'est aussi une modification dans la table –
Avez-vous pu laisser tomber la colonne? – peshkira