0.55.0
Table._meta.refresh_db
Added the ability to refresh the database engine.
MyTable._meta.refresh_db()This causes the Table to fetch the Engine again from your piccolo_conf.py file. The reason this is useful, is you might change the PICCOLO_CONF environment variable, and some Table classes have already imported an engine. This is now used by the piccolo tester run command to ensure all Table classes have the correct engine.
ColumnMeta edge cases
Fixed an edge case where ColumnMeta couldn't be copied if it had extra attributes added to it.
Improved column type conversion
When running migrations which change column types, Piccolo now provides the USING clause to the ALTER COLUMN DDL statement, which makes it more likely that type conversion will be successful.
For example, if there is an Integer column, and it's converted to a Varchar column, the migration will run fine. In the past, running this in reverse would fail. Now Postgres will try and cast the values back to integers, which makes reversing migrations more likely to succeed.
Added drop_tables
There is now a convenience function for dropping several tables in one go. If the database doesn't support CASCADE, then the tables are sorted based on their ForeignKey columns, so they're dropped in the correct order. It all runs inside a transaction.
from piccolo.table import drop_tables
drop_tables(Band, Manager)This is a useful tool in unit tests.
Index support in schema generation
When using piccolo schema generate, Piccolo will now reflect the indexes from the database into the generated Table classes. Thanks to @wmshort for this.