Stack Overflow en español Asked by Carlos Aguirre on January 4, 2021
No sé si el título ha sido claro, no trato de leer y escribir en una BD como hacemos de normal, hasta ahí no hay ningún problema. Hablo de guardar una BD con datos en la propia aplicación y poder acceder a ella, estamos utilizando Kotlin + ROOM. Y me parece que este es uno de los mayores retos que se nos pone por delante.
Estaba pensando si teníamos que hacer un monton de inserts si es la primera vez que se abre la aplicación. Sin embargo, si se pudiese crear y rellenar la BD en el PC y luego simplemente arrastrar a la carpeta RAW sería de gran utilidad. De momento no tanteamos el usar un servidor, sino que cada dispositivo tenga la BD en local, con la ventaja de que funcione offline.
PD: si me ayudais subiré una aplicación avanzada a PlayStore con todo lo que voy recopilando bien explicado, y hasta os puedo poner en los créditos.
Anteriormente usando SQLite
, la mejor opción era usar SQLiteAssetHelper que era capaz de leer tu base de datos la cual agregabas dentro del folder /assets
; pero ahora con la introducción de Room
esto no es un problema ya que nativamente soporta el uso de bases de datos prepobladas.
Para autocompletar una base de datos de Room a partir de un archivo de base de datos empaquetado previamente que está en cualquier lugar del directorio
assets/
de la app, llama al métodocreateFromAsset()
del objetoRoomDatabase.Builder
antes de llamar abuild()
.
Ahora puedes crear tu base de datos, agregarla en el folder /assets
y leerla de esta forma mediante el método databaseBuilder().
ejemplo, suponiendo que tu base de datos "Information.db"
se encuentra dentro de /assets/databases
de esta forma puedes adquirir la instancia de la base de datos:
Room.databaseBuilder(appContext, AppDatabase.class, "Information.db")
.createFromAsset("databases/Information.db")
.build()
Correct answer by Jorgesys on January 4, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP