将谷歌驱动器中的在线SQLite数据库加载到Swift中的iOS应用程序

时间:2017-11-01 15:36:37

标签: swift sqlite

我想在线托管我的SQLite数据库,但我不知道如何导入它。现在,该表正在默认文档目录中创建。这是我的代码:

import UIKit
import SQLite

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {

    var database: Connection!
    let boxesTable = Table("boxes1")
    let ID = Expression<Int>("ID")
    let SNO = Expression<String>("Serial_Number")
    let condition = Expression<String>("Condition")

    override func viewDidLoad() {
        super.viewDidLoad()
        do{
           let doucumentDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
            let fileUrl = doucumentDirectory.appendingPathComponent("boxes1").appendingPathExtension("sqlite3")
            let database = try Connection(fileUrl.path)
            self.database = database
        }catch{
            print(error)
        }

        let createTable = self.boxesTable.create { (table) in
            table.column(self.ID, primaryKey: true)
            table.column(self.SNO, unique: true)
            table.column(self.condition)
        }

        do{
            try self.database.run(createTable)
            print("Created Table")
        }catch{
            print(error)
        }
}

这是我的sqlite数据库的链接: -

https://drive.google.com/open?id=0B7H7vc34uAM6WEVKUC1YeFQ5VkE

我使用Swift 3为此链接提供了可编辑的访问权限。

还有一个问题:我是否直接提供指向我的文件夹或文件的链接?

1 个答案:

答案 0 :(得分:1)

你不应该这样做。 SQLite不是像常规数据库那样在主机上使用的设计。

SQLite是一个库,您的真实数据只是磁盘上的文件。要在线使用它,就必须使用服务器并使该服务器使用SQLite库在SQLite数据库文件上编写。

但SQLite并非设计用于服务器。

  

SQLite是一个实现自包含的进程内库   无服务器,零配置,事务性SQL数据库引擎。

     

SQLite是一个嵌入式SQL数据库引擎。与大多数其他SQL不同   数据库,SQLite没有单独的服务器进程。的 SQLite的   直接读取和写入普通磁盘文件

为此,您应该使用其他服务,例如Firebase

来自SQLite official website