共计 2335 个字符,预计需要花费 6 分钟才能阅读完成。
sqlite 是一款优良的嵌入式数据库,常常被利用在挪动端、外部或长期数据库、嵌入式设施和物联网等场景中。它占用的资源非常低, 可能只须要几百 k 的内存就够了,是一个真正开源的无限度的数据库, 跨平台, 反对 Linux,、Mac、Android、iOS 和 Windows 等零碎, 次要利用于嵌入式开发.
目前 SQLite 应用的用户十分的多,大多数的挪动终端都装有 SQLite 数据库,包含咱们熟知的微信、美团等热门利用都应用了 SQLite。一个利用在初始版本阶段也能够应用 SQlite 来疾速构建原型,随着继续运行数据量逐步增大,业务也越来越简单,SQLite 的一些毛病也裸露了进去,包含不适宜大数据量存储,无奈满足多线程高并发和共享,不足用户治理和平安等性能,此时就须要将利用迁徙到 C / S 构造的数据库管理系统上(MySQL、PostgreSQL、Oracle、SQL Server),同时须要将历史数据也进行同步。
SqliteToPostgres 是一款功能强大的数据库转换软件,反对将 Sqlite 数据库转换为 Postgres 类型,软件提供了向导式的配置流程,反对对数据库进行导入、导出或者自定义字段进行数据库转换操作,是一款很不便的数据迁徙工具.
筹备工作
talk is cheap, show me the code,接下来咱们亲自体验下,咱们的筹备工作如下:
-
一个 sqlite 的数据库文件,咱们应用 golang 程序生成
package main import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" ) func main() {db, err := sql.Open("sqlite3", "./foo.db") checkErr(err) sql_table := ` CREATE TABLE IF NOT EXISTS "userinfo" ( "uid" INTEGER PRIMARY KEY AUTOINCREMENT, "username" VARCHAR(64) NULL, "departname" VARCHAR(64) NULL, "created" TIMESTAMP default (datetime('now', 'localtime')) );` _, err = db.Exec(sql_table)// 执行数据表 checkErr(err) // 插入数据 stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) values(?,?,?)") checkErr(err) res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09") checkErr(err) id, err := res.LastInsertId() checkErr(err) fmt.Println(id) // 更新数据 stmt, err = db.Prepare("update userinfo set username=? where uid=?") checkErr(err) res, err = stmt.Exec("astaxieupdate", id) checkErr(err) affect, err := res.RowsAffected() checkErr(err) fmt.Println(affect) // 查问数据 rows, err := db.Query("SELECT * FROM userinfo") checkErr(err) for rows.Next() { var uid int var username string var department string var created string err = rows.Scan(&uid, &username, &department, &created) checkErr(err) fmt.Println(uid) fmt.Println(username) fmt.Println(department) fmt.Println(created) } db.Close()} func checkErr(err error) { if err != nil {panic(err) } }
go mod init tttt go mod tidy rm -rf ~/.cache/go-build/* yum install binutils go build main.go
- 一个 postgresql 数据库服务,我在这里应用的是一个收费的数 postgresql 数据库服务:MemFireDB,运行在私有云上,无需本人部署,一键注册即可拜访。
- SqliteToPostgres 程序,下载地址 https://www.crsky.com/soft/21…
开搞了
SqliteToPostgres 操作非常简单,装置实现并启动后,只须要依照向导一步步操作
第一步 ,抉择要迁徙的 sqlite 文件,而后点击“ok”,或者为了验证文件是否有损坏,也能够点击“Connect”进行测试,显示 Connected 代表文件完整
第二步 ,登录 MemFireDB 获取服务地址、用户名、数据库的名称,并点击“Connect”进行测试,显示“Connected”代表服务连贯失常,咱们点击“ok”进行下一步操作
第三步 ,抉择要导入的数据表,此处咱们抉择“Import All Tables”以及“Select All”导入所有表,剩下的步骤始终点“Next”即可
最初 ,导入实现后,登录 MemFireDB 查看咱们导入的数据
Thanks
SqliteToPostgres 是一款功能强大、应用便捷的软件,傻瓜式的操作能够让咱们疾速的把 SQLite 中的数据导入到 PostgreSQL 中,在数据备份,利用迁徙工作中起到事倍功半的成果。