tet*_*tet 8 firebase google-cloud-firestore
我正在启动一个新的 Web 应用程序,并且对将 Cloud Firestore 作为我的主要数据库非常感兴趣。但在我将时间投入 Cloud Firestore 之前,我需要一个备份计划。
与 Cassandra 和 Couchbase 等其他 NoSQL 数据库不同,Cloud Firestore 仅作为云服务提供。
选择 Cloud Firestore 意味着您正在进入供应商锁定的世界。
这是否意味着无法将存储在 Cloud Firestore 中的数据移动到另一个 NoSQL 数据库?
我在此处读到,从一个 Cloud Firestore 数据库导出的数据可以导入到另一个 Cloud Firestore 数据库中。但我希望能够选择将数据移动到不同的 NoSQL 数据库。
是否可以?如果是这样,您能大致解释一下如何做到这一点吗?
我并不是要求详细回答如何逐步迁移数据。
小智 7
好吧,大家同样的问题。从Firestore迁移到Mongodb的解决方案
npm install @sgg10/firestore-backup
const firestoreBackup = require('@sgg10/firestore-backup');
const serviceAccount = require('./key');
let fsb = new firestoreBackup(serviceAccount, 'https://you data base link here');
// fsb.exportAll().then(result => fsb.saveFile(result, { name: 'All'}));
fsb.exportCustom(['users']).then(result => fsb.saveFile(result, { name: 'users'}));
Run Code Online (Sandbox Code Playgroud)
接下来,我们有 json 文件,因此,解析该文件并将其作为一个文档保存到 Mongodb。
npm install mongodb --save
const { MongoClient } = require('mongodb');
const jsonFile = require('./users.json');
const MONGO_USERNAME = '';
const MONGO_PASSWORD = '';
const MONGO_HOSTNAME = '';
const MONGO_PORT = '27017';
const MONGO_DB = '';
const AUTH_SOURCE = '';
const url = `mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_HOSTNAME}:${MONGO_PORT}/${MONGO_DB}?authSource=${AUTH_SOURCE}`;
const client = new MongoClient(url, { useUnifiedTopology: true });
const start = async () => {
await client.connect()
.then(() => console.log('success'))
.catch(() => console.log('error'))
}
const saveToDb = () => {
const database = client.db(MONGO_DB);
const users = database.collection("users");
const userKeys = Object.keys(jsonFile.users);
for (let i = 0; i < userKeys.length; i++) {
users.insertOne({ _id: userKeys[i], ...jsonFile.users[userKeys[i]] })
}
}
start().then(() => {
saveToDb();
})
Run Code Online (Sandbox Code Playgroud)
如果两个数据库都有 API,那么就可以将数据从一个数据库迁移到另一个数据库。但考虑到 NoSQL 数据库的差异,不太可能有任何自动化方法来完成此迁移。由于 NoSQL 数据库没有标准 API,因此您还需要修改应用程序代码以使用新数据库。
“最简单”的迁移类型将是迁移到另一个基于集合/文档的数据库。在这种情况下,需要迭代 Firestore 中的每个集合,并在新数据库中重新创建相应的数据结构。
归档时间: |
|
查看次数: |
7462 次 |
最近记录: |