Swift: El problema de base de datos Exportación

votos
0

Estoy tratando de exportar mi base de datos. He intentado por correo electrónico y por compartirlo.

Lo que pasa es que quiero exportar el estado actual de la base de datos (con toda la información en ella).

He probado este código:

func exportDatabase(){
    var url:String = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last! as String
    url = url + /WalletDatabase.sqlite

    let fileManager = FileManager.default
    if fileManager.fileExists(atPath: url) {
        sendMail(sUrl: url)
    }else{
        print(error)
    }
}

func sendMail(sUrl:String){
    if( MFMailComposeViewController.canSendMail() ) {
        print(Can send email.)

        let fileManager = FileManager.default
        let mailComposer = MFMailComposeViewController()
        mailComposer.setToRecipients([***@gmail.com])
        mailComposer.mailComposeDelegate = self

        //Set the subject and message of the email
        mailComposer.setSubject(Lorem Ipsum)
        mailComposer.setMessageBody(Lorem Ipsum., isHTML: false)

        if let fileData = NSData(contentsOfFile: sUrl) {
            print(File data loaded.)
            mailComposer.addAttachmentData(fileData as Data, mimeType: application/x-sqlite3, fileName: WalletDatabase)
        }
        let fileData = fileManager.contents(atPath: sUrl)             
    } else {
        print(error)
    }

Pero :

  • El envío de archivos no tiene ningún tipo de
  • La base de datos está vacía, sólo la mesa y col permanecen

Podría ustedes me dan un poco de ayuda

Publicado el 19/12/2018 a las 14:15
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Lo arreglo añadiendo este código siguiente:

    static func migrateStoreSwift() -> NSURL
{
    let lApp:AppController = UIApplication.shared.delegate as! AppController;
    let lCurrentStore:NSPersistentStore = lApp.persistentStoreCoordinator.persistentStores.last!
    let lNewDataBase = "Database.sqlite"
    let lNewStoreURL:NSURL = lApp.applicationDocumentsDirectory()?.appendingPathComponent(lNewDataBase) as! NSURL
    try! lApp.persistentStoreCoordinator.migratePersistentStore(lCurrentStore, to: lNewStoreURL as URL, options: nil, withType: NSSQLiteStoreType)
    return lNewStoreURL
}

Este código crea una copia de la versión actual de la base de datos.

Respondida el 20/12/2018 a las 08:40
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more