diff --git a/docs/building-migrations.mdx b/docs/building-migrations.mdx
index cd18ca16f..ef84a8d25 100644
--- a/docs/building-migrations.mdx
+++ b/docs/building-migrations.mdx
@@ -132,6 +132,8 @@ To paste a source code correctly in `vim`, press Shift + p
And paste the following code.
+
+
#include
#include
@@ -186,7 +188,7 @@ And paste the following code.
{password_, qEnvironmentVariable("DB_MYSQL_PASSWORD", EMPTY)},
{charset_, qEnvironmentVariable("DB_MYSQL_CHARSET", UTF8MB4)},
{collation_, qEnvironmentVariable("DB_MYSQL_COLLATION", UTF8MB40900aici)},
- {timezone_, SYSTEM},
+ {timezone_, TZ00},
{prefix_, EMPTY},
{prefix_indexes, true},
{strict_, true},
diff --git a/docs/database.mdx b/docs/database.mdx
index 140f17c2b..6308b1eb9 100644
--- a/docs/database.mdx
+++ b/docs/database.mdx
@@ -58,6 +58,10 @@ You can also configure [Transaction Isolation Levels](https://dev.mysql.com/doc/
A database connection is resolved lazily, which means that the connection configuration is only saved after the `DB::create` method call. The connection will be resolved after you run some query or you can create it using the `DB::connection` method.
:::
+:::tip
+You can also use predefined string constants to avoid unnecessary `QString` instantiations, as used in the `tom` migrations [example](building-migrations.mdx#string-constants-example).
+:::
+
#### SQLite Configuration
SQLite databases are contained within a single file on your filesystem. You can create a new SQLite database using the `touch` command in your terminal: `touch database.sqlite3`. After the database has been created, you may configure SQLite database connection:
diff --git a/examples/tom/main.cpp b/examples/tom/main.cpp
index 992413033..3cbfe81f9 100644
--- a/examples/tom/main.cpp
+++ b/examples/tom/main.cpp
@@ -9,30 +9,6 @@
#include "seeders/databaseseeder.hpp"
-using Orm::Constants::EMPTY;
-using Orm::Constants::H127001;
-using Orm::Constants::P3306;
-using Orm::Constants::QMYSQL;
-using Orm::Constants::SYSTEM;
-using Orm::Constants::UTF8MB4;
-using Orm::Constants::UTF8MB40900aici;
-using Orm::Constants::charset_;
-using Orm::Constants::collation_;
-using Orm::Constants::database_;
-using Orm::Constants::driver_;
-using Orm::Constants::engine_;
-using Orm::Constants::host_;
-using Orm::Constants::InnoDB;
-using Orm::Constants::isolation_level;
-using Orm::Constants::options_;
-using Orm::Constants::password_;
-using Orm::Constants::port_;
-using Orm::Constants::prefix_;
-using Orm::Constants::prefix_indexes;
-using Orm::Constants::strict_;
-using Orm::Constants::timezone_;
-using Orm::Constants::username_;
-
using Orm::DatabaseManager;
using Orm::DB;
@@ -87,6 +63,8 @@ int main(int argc, char *argv[])
std::shared_ptr setupManager()
{
+ using namespace Orm::Constants; // NOLINT(google-build-using-namespace)
+
// Ownership of the shared_ptr()
return DB::create({
{driver_, QMYSQL},
@@ -97,7 +75,7 @@ std::shared_ptr setupManager()
{password_, qEnvironmentVariable("DB_MYSQL_PASSWORD", EMPTY)},
{charset_, qEnvironmentVariable("DB_MYSQL_CHARSET", UTF8MB4)},
{collation_, qEnvironmentVariable("DB_MYSQL_COLLATION", UTF8MB40900aici)},
- {timezone_, SYSTEM},
+ {timezone_, TZ00},
{prefix_, EMPTY},
{prefix_indexes, true},
{strict_, true},
diff --git a/include/orm/constants_extern.hpp b/include/orm/constants_extern.hpp
index 09cb1caa5..1f0f73a1c 100644
--- a/include/orm/constants_extern.hpp
+++ b/include/orm/constants_extern.hpp
@@ -88,6 +88,7 @@ namespace Orm::Constants
SHAREDLIB_EXPORT extern const QString UTC;
SHAREDLIB_EXPORT extern const QString LOCAL;
SHAREDLIB_EXPORT extern const QString SYSTEM;
+ SHAREDLIB_EXPORT extern const QString TZ00;
SHAREDLIB_EXPORT extern const QString PUBLIC;
SHAREDLIB_EXPORT extern const QString UTF8;
SHAREDLIB_EXPORT extern const QString UTF8MB4;
diff --git a/include/orm/constants_inline.hpp b/include/orm/constants_inline.hpp
index 5e72f083e..77271ae16 100644
--- a/include/orm/constants_inline.hpp
+++ b/include/orm/constants_inline.hpp
@@ -92,6 +92,7 @@ namespace Orm::Constants
inline const QString UTC = QStringLiteral("UTC");
inline const QString LOCAL = QStringLiteral("LOCAL");
inline const QString SYSTEM = QStringLiteral("SYSTEM");
+ inline const QString TZ00 = QStringLiteral("+00:00");
inline const QString PUBLIC = QStringLiteral("public");
inline const QString UTF8 = QStringLiteral("utf8");
inline const QString UTF8MB4 = QStringLiteral("utf8mb4");
diff --git a/src/orm/constants_extern.cpp b/src/orm/constants_extern.cpp
index eac8ac383..58da11b2f 100644
--- a/src/orm/constants_extern.cpp
+++ b/src/orm/constants_extern.cpp
@@ -77,6 +77,7 @@ namespace Orm::Constants
const QString UTC = QStringLiteral("UTC");
const QString LOCAL = QStringLiteral("LOCAL");
const QString SYSTEM = QStringLiteral("SYSTEM");
+ const QString TZ00 = QStringLiteral("+00:00");
const QString PUBLIC = QStringLiteral("public");
const QString UTF8 = QStringLiteral("utf8");
const QString UTF8MB4 = QStringLiteral("utf8mb4");
diff --git a/tests/TinyUtils/src/databases.cpp b/tests/TinyUtils/src/databases.cpp
index ee40da3ef..0c3b62cee 100644
--- a/tests/TinyUtils/src/databases.cpp
+++ b/tests/TinyUtils/src/databases.cpp
@@ -33,6 +33,7 @@ using Orm::Constants::strict_;
using Orm::Constants::timezone_;
using Orm::Constants::username_;
using Orm::Constants::EMPTY;
+using Orm::Constants::TZ00;
using Orm::Constants::UTC;
using Orm::Constants::UTF8;
using Orm::Constants::UTF8MB4;
@@ -165,7 +166,7 @@ Databases::mysqlConfiguration()
{charset_, qEnvironmentVariable("DB_MYSQL_CHARSET", UTF8MB4)},
{collation_, qEnvironmentVariable("DB_MYSQL_COLLATION", UTF8MB40900aici)},
// Very important for tests
- {timezone_, QStringLiteral("+00:00")},
+ {timezone_, TZ00},
{prefix_, EMPTY},
{prefix_indexes, true},
{strict_, true},
diff --git a/tests/testdata_tom/main.cpp b/tests/testdata_tom/main.cpp
index 624aef77b..a2d534621 100644
--- a/tests/testdata_tom/main.cpp
+++ b/tests/testdata_tom/main.cpp
@@ -18,29 +18,6 @@
#include "seeders/databaseseeder.hpp"
-using Orm::Constants::EMPTY;
-using Orm::Constants::H127001;
-using Orm::Constants::P3306;
-using Orm::Constants::QMYSQL;
-using Orm::Constants::UTF8MB4;
-using Orm::Constants::UTF8MB40900aici;
-using Orm::Constants::charset_;
-using Orm::Constants::collation_;
-using Orm::Constants::database_;
-using Orm::Constants::driver_;
-using Orm::Constants::engine_;
-using Orm::Constants::host_;
-using Orm::Constants::InnoDB;
-using Orm::Constants::isolation_level;
-using Orm::Constants::options_;
-using Orm::Constants::password_;
-using Orm::Constants::port_;
-using Orm::Constants::prefix_;
-using Orm::Constants::prefix_indexes;
-using Orm::Constants::strict_;
-using Orm::Constants::timezone_;
-using Orm::Constants::username_;
-
using Orm::DatabaseManager;
using Orm::DB;
@@ -87,6 +64,8 @@ int main(int argc, char *argv[])
std::shared_ptr setupManager()
{
+ using namespace Orm::Constants; // NOLINT(google-build-using-namespace)
+
// Ownership of the shared_ptr()
return DB::create({
{driver_, QMYSQL},
@@ -97,7 +76,7 @@ std::shared_ptr setupManager()
{password_, qEnvironmentVariable("DB_MYSQL_PASSWORD", EMPTY)},
{charset_, qEnvironmentVariable("DB_MYSQL_CHARSET", UTF8MB4)},
{collation_, qEnvironmentVariable("DB_MYSQL_COLLATION", UTF8MB40900aici)},
- {timezone_, QStringLiteral("+00:00")},
+ {timezone_, TZ00},
{prefix_, EMPTY},
{prefix_indexes, true},
{strict_, true},