Tôi đang tìm cách tốt nhất để di chuyển cơ sở dữ liệu ứng dụng đang sử dụng cơ sở dữ liệu thời gian thực firebase cho cơ sở dữ liệu Cloud Firestore mới. Tôi tự tin cho dự án tôi đang làm việc trên tôi không cần phải thực hiện bất kỳ thay đổi lược đồ dữ liệu, vì vậy tôi khá nhiều chỉ cố gắng 1-1 bản đồ nó. Firebase đã đề xuất trên trang web của họ chỉ để viết một kịch bản để làm điều này, nhưng tôi không chắc chắn về cách tốt nhất để đi về điều đó. Có ai đã thực hiện một kịch bản hoàn thành điều này?Di chuyển cơ sở dữ liệu thời gian thực Firebase thành Firestore
Trả lời
Tôi đã viết lên một tập lệnh nút nhỏ để di chuyển mọi thứ một cách nhanh chóng và dơ bẩn và nó hoạt động khá độc đáo.
Nó ở bên dưới nếu có ai quan tâm.
Lưu ý: Đây chỉ nên được sử dụng nếu mô hình dữ liệu của bạn trong cơ sở dữ liệu thời gian thực là hoàn toàn bằng phẳng và không có nhiều dữ liệu lồng nhau, và bạn có ý định vào việc giữ dữ liệu của bạn bằng phẳng cũng như trong FireStore
Để chạy tập lệnh này chỉ tạo một tệp nút gọi là index.js và ném nó vào thư mục cùng với tệp tài khoản dịch vụ và tệp json thô của bạn từ xuất cơ sở dữ liệu thời gian thực và chạy sau từ dòng lệnh.
$ node index.js
Thực hiện tập lệnh bên dưới.
const admin = require('firebase-admin');
var serviceAccount = require("./config.json");
var database = require("./database.json");
var async = require ('async');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
var db = admin.firestore();
var allEntityNames = Object.keys(database);
var asyncTasks = [];
for (var i in allEntityNames) {
var entityName = allEntityNames[i];
var entity = database[entityName];
var entityKeys = Object.keys(entity);
console.log("began migrating "+ entityName);
for (var j in entityKeys) {
var entityKey = entityKeys[j];
var dict = entity[entityKey];
asyncTasks.push(function(callback){
db.collection(entityName).doc(entityKey).set(dict)
.then(function() {
callback();
})
.catch(function(error) {
console.log(error);
callback();
});
});
}
async.parallel(asyncTasks, function(){
console.log("Finished migrating "+ entityName);
});
}
Hi tôi đã tạo ra một kịch bản cho cùng một
import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';
import { AngularFireDatabase } from 'angularfire2/database';
constructor(private afs: AngularFirestore, private angularfire: AngularFireDatabase) {}
convert() {
this.itemsCollection = this.afs.collection('requests');//ref()
this.angularfire.list('/requests/').auditTrail().subscribe((data: any) => {
_.each(data, element =>{
this.itemsCollection.doc(element.key).set(element.payload.val()) .then((result) => { }); }); });}
bạn có thể thêm các bước để chạy ứng dụng này không? – Luke
yes 1) định cấu hình dự án firebase của bạn và sau đó 2) Thêm tệp TS nhập {AngularFirestore, AngularFirestoreCollection} từ 'angularfire2/firestore'; nhập {AngularFireDatabase} từ 'angularfire2/database'; hàm tạo (private afs: AngularFirestore, angularfire private: AngularFireDatabase) {} chuyển đổi() { this.itemsCollection = this.afs.collection ('requests'); // ref() this.angularfire.list ('/ yêu cầu/') .Đăng ký ((dữ liệu: bất kỳ) => { _.each (dữ liệu, phần tử => { this.itemsCollection.doc (element.key) .set (element.payload.val ()) .then ((kết quả) => {});});});} –
- 1. AWS sẽ tương đương với Cơ sở dữ liệu thời gian thực Firebase là gì?
- 2. Meteor cách thực hiện di chuyển cơ sở dữ liệu?
- 3. Chuyển đổi cơ sở dữ liệu Postgres thông thường thành cơ sở dữ liệu không gian
- 4. Di chuyển cơ sở dữ liệu MySQL phát triển sang cơ sở dữ liệu sản xuất
- 5. Tại sao bộ sưu tập xóa "một lượng lớn" trong Cloud Firestore không thể thực hiện được như với Cơ sở dữ liệu thời gian thực?
- 6. cách di chuyển dữ liệu mysql sang ElasticSearch thời gian thực
- 7. Trình lắng nghe Cơ sở dữ liệu Firebase không kích hoạt sau một thời gian khi được xác thực
- 8. Nơi để kiểm tra Vị trí cơ sở dữ liệu thời gian thực Firebase (Hoa Kỳ, EU hoặc Châu Á)
- 9. Di chuyển cơ sở dữ liệu giống như Rails?
- 10. Làm cách nào để truy xuất dữ liệu từ Cơ sở dữ liệu Firebase?
- 11. Thiết kế cơ sở dữ liệu thời gian trong Cassandra
- 12. Cách di chuyển dữ liệu và cài đặt từ cơ sở dữ liệu này sang cơ sở dữ liệu khác?
- 13. Laravel 5.1: Di chuyển cơ sở dữ liệu hiện có
- 14. Rails + PostGIS lỗi di chuyển cơ sở dữ liệu
- 15. Di chuyển Django với nhiều cơ sở dữ liệu
- 16. mysqldb chuyển đổi dữ liệu dấu thời gian thành Không
- 17. Tham gia dữ liệu được làm phẳng từ Cơ sở dữ liệu thời gian thực Firebase bằng cách sử dụng RxJava
- 18. Cách truy vấn loại dữ liệu tham chiếu Firebase Firestore?
- 19. Di chuyển cơ sở dữ liệu MySQL bị thiếu dữ liệu
- 20. So sánh dấu thời gian với thời gian hiện tại từ cơ sở dữ liệu
- 21. Chuyển dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác
- 22. Làm cách nào để di chuyển Sơ đồ cơ sở dữ liệu SQL Server sang cơ sở dữ liệu khác?
- 23. Khuôn khổ thực thể: Thêm di chuyển không thành công với Không thể cập nhật cơ sở dữ liệu
- 24. Truy vấn kiểu cơ sở dữ liệu với Firebase
- 25. Di chuyển cơ sở dữ liệu thành viên ASP.NET sang SQL Azure
- 26. Gọi cơ sở dữ liệu Firebase từ Google App Engine
- 27. Tôi không thể xem người dùng trong Thời gian thực trên cơ sở firebase phải không?
- 28. PHP không hiển thị thời gian thực từ cơ sở dữ liệu một cách chính xác
- 29. Thay đổi lược đồ cơ sở dữ liệu khuôn khổ thực thể tại thời gian chạy
- 30. Di chuyển bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong MySQL
https://firebase.google.com/docs/firestore/firestore-for-rtdb –
vâng, biết liên kết đó, nhưng về cơ bản họ chỉ đề nghị viết một kịch bản, nhưng đó không phải là câu hỏi mà câu hỏi này đặt ra. – Luke
Không ai có thể có một kịch bản chung cho điều này vì nó có thể sẽ được tùy chỉnh theo từng trường hợp sử dụng và yêu cầu cụ thể của từng người. –