| 558 | } |
| 559 | |
| 560 | std::unique_ptr<SQLiteDatabase> MakeSQLiteDatabase(const fs::path& path, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error) |
| 561 | { |
| 562 | try { |
| 563 | fs::path data_file = SQLiteDataFile(path); |
| 564 | auto db = std::make_unique<SQLiteDatabase>(data_file.parent_path(), data_file); |
| 565 | if (options.verify && !db->Verify(error)) { |
| 566 | status = DatabaseStatus::FAILED_VERIFY; |
| 567 | return nullptr; |
| 568 | } |
| 569 | status = DatabaseStatus::SUCCESS; |
| 570 | return db; |
| 571 | } catch (const std::runtime_error& e) { |
| 572 | status = DatabaseStatus::FAILED_LOAD; |
| 573 | error = Untranslated(e.what()); |
| 574 | return nullptr; |
| 575 | } |
| 576 | } |
| 577 | |
| 578 | std::string SQLiteDatabaseVersion() |
| 579 | { |
no test coverage detected