Be able to build with clang-cl with MSVC 2019/2022 but only with
inline constants.
- supported by both CMake and qmake 🎉
- updated docs support compilers
qmake specific:
- enhanced and fixed tiny_toolchain_requirement
- added clang-cl min. required version to tiny_toolchain_requirement
- enhanced winconf.pri
- updated conf.pri.examples
- added a new feature file the tiny_system_headers.prf, it unifies
tagging system headers
cmake specific:
- also added clang-cl min. required version as minReqClangClVersion
- for clang-cl set the INLINE_CONSTANTS to ON and don't show this
CMake option
- added fixPostgresSequences() to our tom seeder
- added PostgreSQL connection to tom_testdata
- updated msvc workflow
- tom, throw if empty connection only if exactly one connection
provided
- also updated create_and_seed_database.php script to exclude postgres
connection using --skip-postgres-migrate command-line parameter
- added a new config. option dont_drop, allows to define table that
will be excluded during dropAllTables(), has a default value
spatial_ref_sys for PostGIS
- implemented fluent commands, used only by the PostgreSQL Comment
command
- added tests for PostgreSQL schema builder
- reworked tst_Migrate to be able to run on all supported connections,
currently PostgreSQL and MySQL
- updated docs
Unrelated:
- added a new reference class IndexDefinitionReference for a nice API
during index definition, contains algorithm and language
- unified selectFromWriteConnection() in schema builders
The db:seed command invokes the root seeder DatabaseSeeder which can
invoke another seeders using the call() related methods. The root seeder
can be set by the --class command-line option and also by the --seeder
cmd. line option on some other commands like migrate:fresh/refresh.
Seeders can be passed to the Tom application in the similar way like the
migrations using the TomApplication::seeders<>() method or through the
constructor.
Arguments can be passed to the call<>() method, then the seeders run()
method will not be called using the virtual dispatch but using the type
traits. Of course the arguments passed to the call<>() method has to
match with the run() method parameters.
Others:
- unified usingConnection() across all commands, this functionality was
extracted to own class, previous it was a part of the Migrator class,
so now every command even if it doesn't use Migrator can call
the usingConnection() and it correctly sets a default connection and
SQL queries debugging on the base of the -vvv command-line argument
- a default database connection is now required, if not set then
the exception will be thrown
- added example seeders to the Tom application
Use utf8 on MinGW and ANSI with msvc.
The core of the problem is in the $$cat() and write_file() qmake
functions they don't know process UTF-8 encoded files, they use
the ANSI encoding.
Migration classes can be named in two formats, CamelCase without the
datetime prefix and snake_case with the datetime prefix.
If the CamelCase name is used then the T_MIGRATION macro has to be
also used in the migration class.
- also added a new validations of the migration class names