[android] SQLite 데이터베이스 백업과 복원

안드로이드 앱에서 SQLite 데이터베이스는 중요한 데이터를 저장하는 데 사용됩니다. 그러나 사용자가 앱을 업데이트하거나 기기를 변경할 때 데이터 손실 가능성이 있습니다. 이를 방지하기 위해 SQLite 데이터베이스를 백업하고 복원하는 방법을 알아보겠습니다.

1. SQLite 데이터베이스 백업

SQLite 데이터베이스를 백업하는 가장 일반적인 방법은 데이터베이스 파일을 복사하는 것입니다. 안드로이드에서는 내부 저장소 또는 외부 저장소에 데이터베이스 파일을 백업할 수 있습니다. 내부 저장소의 경우 앱의 files 디렉터리에, 외부 저장소의 경우 외부 저장소 디렉터리에 백업 파일을 저장할 수 있습니다.

// 내부 저장소에 SQLite 데이터베이스 백업
File dataDir = Environment.getDataDirectory();
File currentDB = new File(dataDir, "/data/your.package.name/databases/YourDatabase.db");
File backupDir = new File(Environment.getExternalStorageDirectory(), "Backup");
if (!backupDir.exists()) {
    backupDir.mkdirs();
}
File backupDB = new File(backupDir, "YourDatabaseBackup.db");
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();

2. SQLite 데이터베이스 복원

백업된 SQLite 데이터베이스를 복원하는 것은 간단합니다. 백업 파일을 읽은 후, 원하는 위치에 데이터베이스 파일을 복사하면 됩니다.

// 내부 저장소에서 SQLite 데이터베이스 복원
File backupDB = new File(Environment.getExternalStorageDirectory(), "Backup/YourDatabaseBackup.db");
File currentDB = new File(dataDir, "/data/your.package.name/databases/YourDatabase.db");
FileChannel src = new FileInputStream(backupDB).getChannel();
FileChannel dst = new FileOutputStream(currentDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();

SQLite 데이터베이스 백업 및 복원은 안드로이드 앱에서 중요한 데이터를 안전하게 보호하는 데 중요한 역할을 합니다. 개발자는 앱을 업데이트하거나 사용자가 기기를 변경할 때 데이터 손실을 방지하기 위해 이러한 백업 및 복원 기능을 구현하는 것이 좋습니다.

참고 자료: