SQLiteOpenHelper.OnUpgrade(SQLiteDatabase, Int32, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se llama cuando es necesario actualizar la base de datos.
[Android.Runtime.Register("onUpgrade", "(Landroid/database/sqlite/SQLiteDatabase;II)V", "GetOnUpgrade_Landroid_database_sqlite_SQLiteDatabase_IIHandler")]
public abstract void OnUpgrade(Android.Database.Sqlite.SQLiteDatabase? db, int oldVersion, int newVersion);
[<Android.Runtime.Register("onUpgrade", "(Landroid/database/sqlite/SQLiteDatabase;II)V", "GetOnUpgrade_Landroid_database_sqlite_SQLiteDatabase_IIHandler")>]
abstract member OnUpgrade : Android.Database.Sqlite.SQLiteDatabase * int * int -> unit
Parámetros
Base de datos.
- oldVersion
- Int32
Versión anterior de la base de datos.
- newVersion
- Int32
Nueva versión de la base de datos.
- Atributos
Comentarios
Se llama cuando es necesario actualizar la base de datos. La implementación debe usar este método para quitar tablas, agregar tablas o hacer cualquier otra cosa que necesite actualizar a la nueva versión de esquema.
La documentación de SQLite ALTER TABLE se puede encontrar aquí. Si agrega nuevas columnas, puede usar ALTER TABLE para insertarlas en una tabla dinámica. Si cambia el nombre o quita las columnas, puede usar ALTER TABLE para cambiar el nombre de la tabla anterior, cree la nueva tabla y, a continuación, rellene la nueva tabla con el contenido de la tabla anterior.
Este método se ejecuta dentro de una transacción. Si se produce una excepción, todos los cambios se revertirán automáticamente.
<em>Important:</em> No debe modificar un paso de migración existente de la versión X a X+1 una vez que se haya publicado una compilación que contenga ese paso de migración. Si un paso de migración tiene un error y se ejecuta en un dispositivo, el paso NO se volverá a ejecutar en el futuro si se realiza una corrección en el paso de migración.
Por ejemplo, supongamos que un paso de migración cambia el nombre de una columna de base de datos de foo a bar cuando el nombre debe haber sido baz. Si ese paso de migración se libera en una compilación y se ejecuta en el dispositivo de un usuario, se cambiará el nombre de la columna a bar. Si el desarrollador edita posteriormente este mismo paso de migración para cambiar el nombre al baz previsto, los dispositivos de usuario que ya han ejecutado este paso seguirán teniendo el nombre bar. En su lugar, se debe crear un nuevo paso de migración para corregir el error y cambiar el nombre bar a baz, asegurándose de que el error se corrija en los dispositivos que ya han ejecutado el paso de migración con el error.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.