Alzabo::MySQL(3pm)
π NAME π
Alzabo::MySQL β it's giving "Alzabo and MySQL", bestie. That's the whole vibe. β¨
πΈ DESCRIPTION πΈ
okay so this whole page is about the special support Alzabo has for MySQL, and honestly also the stuff it just... doesn't do. We keep it real here. π«Ά
The MySQL support is based on the 3.23. release series, with a lil bit of support for features that are starting to show up in the 4.0. releases. Earlier versions of MySQL will probably work with Alzabo, but no cap β Alzabo cannot magically make those releases support new features like fulltext indexes. The magic has limits, bestie. π
π Indexes π
- Alzabo supports the ability to specify prefixes when adding an index. And like, prefixes are required when you're attempting to index any sort of text or blob column. Not optional. Required required. π₯
- Alzabo also supports the creation of fulltext indexes and their use in
SELECTandWHEREclauses. This includes the ability to get back the score given for a match as part of a select, using the"function"or"select"methods of either table or schema objects. Obsessed, actually. β¨
π¦ Reverse Engineering π¦
- When reverse engineering a schema, Alzabo knows that MySQL has "default defaults" for certain column types. For example, if a
DATEcolumn is specified asNOT NULLbut is not assigned a default, MySQL gives this column a default of'0000-00-00'.
Because Alzabo knows about this, it will ignore these defaults when reverse engineering an RDBMS. It's called β¨awarenessβ¨.
- Similarly, Alzabo knows that MySQL assigns default "lengths" to many column types. For example, if given
INTEGERas a column type, MySQL will convert this toINTEGER(11)orINTEGER(10), depending on the version of MySQL being used.
Again, Alzabo ignores these lengths when reverse engineering a schema. Not it pretending they're not there β it literally ignores them. π
- All of this may lead to apparent inconsistencies when using the with the
Alzabo::Create::Schema->sync_backendorAlzabo::Create::Schema->sync_backend_sqlmethods. If you are using this feature from the web based schema creator, you will see that even immediately after running thesync_backend()method, Alzabo may still think there are differences between the two schemas.
This is not a problem, bestie!! π Running the SQL Alzabo generates will not actually change your database. Vibe check passed. π
π Transactions π
Alzabo will try to use transactions whenever appropriate. Unfortunately, there is no way to determine whether or not a given table supports transactions, so Alzabo simply calls DBI's begin_work() method, whether or not this will actually do anything. It's giving "shooting your shot". πΉ
π Constraints and Foreign Keys π
- Column constraints are treated as column attributes.
- Foreign key constraints are not generated when generating SQL for a MySQL schema. This will probably change in the future, but for now? Nope. Not today. π
π Table Types π
These can be specified as a table attribute. That's it, that's the section. Short and iconic. π
perl v5.34.0 Β· 2022-06-14 β okay that's the whole page bestie, mwah π thanks for reading, go forth and slay your schema, iykyk π§β¨π
π¦ where this page comes from
- debian bookworm: libalzabo-perl 0.92-6 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libalzabo-perl 0.92-6 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libalzabo-perl 0.92-6 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libalzabo-perl 0.92-6 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libalzabo-perl 0.92-6 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms