किसी फ़ाइल में 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 फ़ाइल, और इसे एक सुरक्षित स्थान पर चिपकाएँ।