-// EmuFront
-// Copyright 2010 Mikko Keinänen
-//
-// This file is part of EmuFront.
-//
-//
-// EmuFront is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as published by
-// the Free Software Foundation and appearing in the file gpl.txt included in the
-// packaging of this file.
-//
-// EmuFront is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
-
+/*
+** EmuFront
+** Copyright 2010 Mikko Keinänen
+**
+** This file is part of EmuFront.
+**
+**
+** EmuFront is free software: you can redistribute it and/or modify
+** it under the terms of the GNU General Public License version 2 as published by
+** the Free Software Foundation and appearing in the file gpl.txt included in the
+** packaging of this file.
+**
+** EmuFront is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with EmuFront. If not, see <http://www.gnu.org/licenses/>.
+*/
#include <QObject>
#include <QDir>
#include <QSqlDatabase>
#include <QDebug>
#include <exception>
#include "dbcreator.h"
-
+#include "emufrontexception.h"
using namespace std;
try
{
+
+ /*
+
+ N O T I C E
+ -----------
+
+ When adding a new table, remember to add a drop table
+ clause also!
+
+ When changing the database structure, increase
+ also the version number and create a sql command
+ for updating from last version to new version.
+
+ Update those version upgrade "patches" here as a version history:
+ -----------------------------------------------------------------
+
+ */
+
query.exec("DROP TABLE IF EXISTS mediaimagecontainer_mediaimage");
query.exec("DROP TABLE IF EXISTS mediaimagecontainer_filepath");
query.exec("DROP TABLE IF EXISTS filepath");
if (!ret) throw QString("tbl config");
- ret = query.exec("CREATE TABLE IF NOT EXISTS file"
+ ret = query.exec(
+ "CREATE TABLE IF NOT EXISTS titlename "
+ "(id INTEGER PRIMARY KEY, "
+ " name TEXT)"
+ // TODO: more fields here...
+ );
+
+ if (!ret) throw QString("tbl titlename");
+
+ ret = query.exec("CREATE TABLE IF NOT EXISTS file "
"(id INTEGER PRIMARY KEY, "
"name TEXT, "
"type INTEGER, "
if (!ret) throw QString("tbl file");
+ ret = query.exec(
+ "CREATE TABLE IF NOT EXISTS file titlename_file "
+ "(titlenameid INTEGER REFERENCES titlename(id), "
+ "fileid INTEGER REFERENCES file(id))"
+ );
+
qDebug() << "Creating TABLE platform";
ret = query.exec("CREATE TABLE IF NOT EXISTS platform "
catch (QString tbl)
{
QString err = query.lastError().text();
- throw QString("Couldn't CREATE '%1'!").arg(tbl).append(err);
+ throw EmuFrontException(QString("Couldn't CREATE '%1'!").arg(tbl).append(err));
}
return ret;
}