File: database.doc

package info (click to toggle)
qdjango 0.2.5-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 2,144 kB
  • sloc: cpp: 6,085; perl: 104; makefile: 6
file content (60 lines) | stat: -rw-r--r-- 1,926 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
 * Copyright (C) 2010-2012 Jeremy Lainé
 * Contact: http://code.google.com/p/qdjango/
 *
 * This file is part of the QDjango Library.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 */

/*! \page database Database configuration

QDjango relies on the <a href="http://doc.qt.nokia.com/latest/qtsql.html">QtSql module</a>
for database access, which supports a wide array of database drivers.

\section setup Setting the database

The first step is to open the database using
<a href="http://doc.qt.nokia.com/latest/qsqldatabase.html#addDatabase">QSqlDatabase::addDatabase()</a>,
for instance for an in-memory SQLite database:

\code
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:");
db.open();
\endcode

You should now tell QDjango to use the database you just opened:

\code
QDjango::setDatabase(db);
\endcode

\section creating Creating or dropping database tables

Once you have set the database and declared all your models (see \ref models), you can ask QDjango to create
the database tables for all models:

\code
QDjango::createTables();
\endcode

Conversely, you can ask QDjango to drop the database tables for all models:

\code
QDjango::dropTables();
\endcode

\section threading Threading support

Internally, QDjango calls the QDjango::database() method whenever it needs a handle to the database. This method will clone the database connection as needed if it is invoked from a different thread.

*/