SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite - फ़ाइल में डेटाबेस का बैकअप लें

किसी फ़ाइल में SQLite डेटाबेस का बैकअप कैसे लें।

फ़ाइल करने के लिए SQLite डेटाबेस का बैकअप लेने के कई तरीके हैं।

  • .backup का उपयोग करें आदेश।
  • .clone का उपयोग करें आदेश।
  • .dump का उपयोग करें आदेश।
  • फ़ाइल सिस्टम पर फ़ाइल की प्रतिलिपि बनाएँ।

.backup कमांड

यह कमांड डेटाबेस को फाइल में बैकअप देता है। यह एक डेटाबेस उपनाम (यानी बैकअप के लिए डेटाबेस), और एक फ़ाइल नाम (बैकअप फ़ाइल के लिए) स्वीकार करता है।

यदि आप डेटाबेस उपनाम को छोड़ देते हैं, तो यह main . का उपयोग करेगा डेटाबेस।

यहां एक उदाहरण दिया गया है:

.backup mybackup.db

यह backup.db . नामक एक फ़ाइल बनाएगा जिसमें डेटाबेस का बैकअप होता है। यदि आवश्यक हो तो आप इसे वापस SQLite3 कमांड-लाइन शेल में संलग्न कर सकते हैं (फिर एक .databases करें। डेटाबेस कनेक्शन की सूची देखने के लिए):

sqlite> ATTACH DATABASE 'mybackup.db' AS MyBackup;
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                       
2    MyBackup         /Users/quackit/sqlite/mybackup.db    

व्यवहार में, आप संभवतः डेटाबेस को किसी भिन्न स्थान पर बैकअप करेंगे। इसलिए, आप .backup . में पूर्ण फ़ाइल पथ प्रदान करेंगे आज्ञा। उदाहरण के लिए, .backup /remote/folder/mybackup.db

.clone कमांड

.clone कमांड .backup . के समान है आज्ञा। हालांकि, .clone केवल वर्तमान डेटाबेस का उपयोग करता है, इसलिए आप क्लोन करने के लिए अन्य डेटाबेस निर्दिष्ट नहीं कर सकते।

वर्तमान डेटाबेस को क्लोन करने के लिए, टाइप करें .clone इसके बाद क्लोन किए गए डेटा के लिए डेटाबेस फ़ाइल का नाम आता है।

इस तरह:

.clone myclone.db

दौड़ना जो इस तरह दिखता है:

sqlite> .clone myclone.db
Artists... done
Albums... done
Albums2... done
Catalog... done
Genres... done

आप क्लोन किए गए डेटाबेस को दूसरे की तरह ही संलग्न कर सकते हैं:

sqlite> ATTACH DATABASE 'myclone.db' AS MyClone;
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                       
2    MyBackup         /Users/quackit/sqlite/mybackup.db                         
3    MyClone          /Users/quackit/sqlite/myclone.db      

.dump कमांड

आप .dump . का उपयोग कर सकते हैं डेटाबेस को ASCII फ़ाइल में डंप करने का आदेश। उदाहरण के लिए, आप इसे एक .sql फ़ाइल में डंप कर सकते हैं जिसमें डेटाबेस को जेनरेट करने के लिए SQL स्टेटमेंट शामिल हैं।

पूरा DB डंप करें

यह उदाहरण music.db को डंप करता है music.sql . पर फ़ाइल करें ।

sqlite3 music.db .dump > music.sql

music.sql . की सामग्री (स्क्रॉलिंग आवश्यक):

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Artists(
  ArtistId    INTEGER PRIMARY KEY, 
  ArtistName  TEXT NOT NULL
, Bio TEXT);
INSERT INTO "Artists" VALUES(1,'Joe Satriani',NULL);
INSERT INTO "Artists" VALUES(2,'Steve Vai',NULL);
INSERT INTO "Artists" VALUES(3,'The Tea Party',NULL);
INSERT INTO "Artists" VALUES(4,'Noiseworks',NULL);
INSERT INTO "Artists" VALUES(5,'Wayne Jury',NULL);
INSERT INTO "Artists" VALUES(6,'Mr Percival',NULL);
INSERT INTO "Artists" VALUES(7,'Iron Maiden',NULL);
INSERT INTO "Artists" VALUES(8,'Atmasphere','Australian jazz band centred around polyrhythms.');
INSERT INTO "Artists" VALUES(9,'Ian Moss',NULL);
INSERT INTO "Artists" VALUES(10,'Magnum',NULL);
INSERT INTO "Artists" VALUES(13,'Primus',NULL);
INSERT INTO "Artists" VALUES(14,'Pat Metheny',NULL);
INSERT INTO "Artists" VALUES(15,'Frank Gambale',NULL);
INSERT INTO "Artists" VALUES(16,'Mothers of Invention',NULL);
CREATE TABLE Albums(
  AlbumId     INTEGER PRIMARY KEY, 
  AlbumName   TEXT NOT NULL,
  ReleaseDate TEXT,
  ArtistId INTEGER NOT NULL,
  FOREIGN KEY(ArtistId) REFERENCES Artists(ArtistId)
);
INSERT INTO "Albums" VALUES(1,'Killers','1981',7);
INSERT INTO "Albums" VALUES(2,'Powerslave','1984',7);
INSERT INTO "Albums" VALUES(3,'Surfing with the Alien','1987',1);
INSERT INTO "Albums" VALUES(4,'Heavy as a Really Heavy Thing','1995',11);
INSERT INTO "Albums" VALUES(6,'Out of the Loop','2007',6);
INSERT INTO "Albums" VALUES(7,'Suck on This','1989',13);
INSERT INTO "Albums" VALUES(8,'Pork Soda','1993',13);
INSERT INTO "Albums" VALUES(9,'Sailing the Seas of Cheese','1991',13);
INSERT INTO "Albums" VALUES(10,'Flying in a Blue Dream','1989',1);
INSERT INTO "Albums" VALUES(11,'Black Swans and Wormhole Wizards','2010',1);
INSERT INTO "Albums" VALUES(12,'Somewhere in Time','1986',7);
CREATE TABLE Albums2(
  AlbumId INT,
  AlbumName TEXT,
  ArtistId INT
);
INSERT INTO "Albums2" VALUES(1,'Killers',7);
INSERT INTO "Albums2" VALUES(2,'Powerslave',7);
INSERT INTO "Albums2" VALUES(3,'Surfing with the Alien',1);
INSERT INTO "Albums2" VALUES(4,'Heavy as a Really Heavy Thing',11);
INSERT INTO "Albums2" VALUES(5,'Yummy Yummy',17);
INSERT INTO "Albums2" VALUES(6,'Out of the Loop',6);
INSERT INTO "Albums2" VALUES(7,'Suck on This',13);
INSERT INTO "Albums2" VALUES(8,'Pork Soda',13);
INSERT INTO "Albums2" VALUES(9,'Sailing the Seas of Cheese',13);
INSERT INTO "Albums2" VALUES(10,'Flying in a Blue Dream',1);
INSERT INTO "Albums2" VALUES(11,'Black Swans and Wormhole Wizards',1);
INSERT INTO "Albums2" VALUES(12,'Somewhere in Time',7);
INSERT INTO "Albums2" VALUES(13,'Big Red Car',17);
CREATE TABLE Catalog(
  "AlbumId" TEXT,
  "AlbumName" TEXT,
  "ArtistName" TEXT
);
INSERT INTO "Catalog" VALUES('1','Killers','Iron Maiden');
INSERT INTO "Catalog" VALUES('2','Powerslave','Iron Maiden');
INSERT INTO "Catalog" VALUES('12','Somewhere in Time','Iron Maiden');
INSERT INTO "Catalog" VALUES('3','Surfing with the Alien','Joe Satriani');
INSERT INTO "Catalog" VALUES('10','Flying in a Blue Dream','Joe Satriani');
INSERT INTO "Catalog" VALUES('11','Black Swans and Wormhole Wizards','Joe Satriani');
INSERT INTO "Catalog" VALUES('6','Out of the Loop','Mr Percival');
INSERT INTO "Catalog" VALUES('7','Suck on This','Primus');
INSERT INTO "Catalog" VALUES('8','Pork Soda','Primus');
INSERT INTO "Catalog" VALUES('9','Sailing the Seas of Cheese','Primus');
CREATE TABLE Genres(
  GenreId    INTEGER PRIMARY KEY, 
  Genre      TEXT NOT NULL
);
INSERT INTO "Genres" VALUES(1,'Rock');
INSERT INTO "Genres" VALUES(2,'Country');
INSERT INTO "Genres" VALUES(3,'Pop');
INSERT INTO "Genres" VALUES(4,'Comedy');
INSERT INTO "Genres" VALUES(5,'Jazz');
INSERT INTO "Genres" VALUES(6,'Blues');
INSERT INTO "Genres" VALUES(7,'Techno');
COMMIT;

फ़ाइल कॉपी करें

उपरोक्त विधियाँ आपको SQLite3 कमांड-लाइन शेल के भीतर से एक डेटाबेस का बैकअप लेने की अनुमति देती हैं।

आप फ़ाइल सिस्टम पर भौतिक फ़ाइल को कॉपी/पेस्ट करके डेटाबेस का बैकअप भी ले सकते हैं।

यदि आप भौतिक फ़ाइल के स्थान के बारे में सुनिश्चित नहीं हैं, तो आप .databases का उपयोग कर सकते हैं स्थान खोजने के लिए आदेश:

sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                

इसलिए उपरोक्त ज्ञान से लैस, मैं अब /Users/quackit/sqlite/ पर नेविगेट कर सकता हूं। निर्देशिका, कॉपी करें music.db फ़ाइल, और इसे एक सुरक्षित स्थान पर चिपकाएँ।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. निर्माणकर्ता SQLiteOpenHelper() अपरिभाषित है

  2. SQLite कहा पे

  3. ऑफ़लाइन एप्लिकेशन के लिए बैकअप बनाने के सर्वोत्तम तरीके?

  4. बिना दोहराव के SQLite से बटन पर टेक्स्ट को बेतरतीब ढंग से कैसे सेट करें?

  5. SQLite COUNT