Edit File: migrator.cpython-311.pyc
� ������Fhu=����������������������d����d�Z�ddlmZ�ddlmZmZmZmZmZm Z m Z �ddlZddl mZmZmZmZmZmZmZmZ�ddl mZ�ddl mZ�ddl mZ�dd l mZ�d dlmZ�erd dl m!Z!m"Z"��G�d ��de������������Z�G�d��dee������������Z�G�d��dee������������Z�G�d��dee������������Z�G�d��d������������Z#�G�d��d������������Z$dS�)zRun migrations.�����)�annotations)� TYPE_CHECKING�Any�Callable�List�Union�cast�overloadN)�SQL�Context� MySQLDatabase� Operation�PostgresqlDatabase�SqliteDatabase�make_index_name� operation)� MySQLMigrator)�PostgresqlMigrator)�SchemaMigrator)�SqliteMigrator����)�logger)� TModelType�TVModelTypec��������������������������e�Zd�ZdZedd���������������Zdd�dd �Zedd���������������Zd d�Z ed!d���������������Z d"��fd�Z��xZS�)#r���zImplement migrations.�database�Union[pw.Database, pw.Proxy]�returnc����������������������t����������|t����������������������rt����������|������������S�t����������|t����������������������rt ����������|������������S�t����������|t ����������������������rt ����������|������������S�t����������d|z���������������)zInitialize migrator by db.zUnsupported database: %s)� isinstancer���r���r���r���r ���r���� ValueError)�clsr���s��� �N/opt/imunify360/venv/lib64/python3.11/site-packages/peewee_migrate/migrator.py� from_databasezSchemaMigrator.from_database(���sy��������h� 2�3�3�� 0�%�h�/�/�/��h��/�/�� ,�!�(�+�+�+��h� �.�.�� +� ��*�*�*��3�h�>�?�?�?�����T��cascade�modelr���r'����bool�Callable[[], Any]c�������������������������fd�S�)zDrop table.c������������������0��������������������������������������������S�)Nr&����� drop_table)r'���r(���s�����r#����<lambda>z+SchemaMigrator.drop_table.<locals>.<lambda>8���s�������u�'�'��'�8�8��r%�������selfr(���r'���s��� ``r#���r.���zSchemaMigrator.drop_table6���s��������8�8�8�8�8�8r%����table�str�column_name�field�pw.Field�List[Union[Context, Operation]]c����������������������|�����������������������|||������������g}|j��������s*|���������������������|����������������������||������������g�������������|S�)zChange column.)�alter_change_column�null�extend�add_not_null)r2���r3���r5���r6���� operationss��� r#���� change_columnzSchemaMigrator.change_column:���sZ������� �$�$�U�K��?�?�7 � ���z�� G����t�0�0���D�D�E�F�F�F��r%����columnr���c����������������������|�������������������������������������}|j��������dc}|_��������|����������������������||���������������������������������d���������������������������������|���������������������|������������������������}||_��������|S�)�Support change columns.Tz ALTER COLUMN ��make_contextr;����_alter_table�literal�sql�ddl�r2���r3���r@���r6����ctx� field_nulls��� r#���r:���z"SchemaMigrator.alter_change_columnF���sl���������!�!��!&��T�� �E�J�����U�+�+�3�3�4D�E�E�I�I�%�)�)�TW�.�.�Y�Y���� �� r%���rG���r���c����������������������t����������|g|�R���S�)�Execute raw SQL.)r���)r2���rG����paramss��� r#���rG���zSchemaMigrator.sqlN���s��������3� �� � � � r%���r���c�����������������������|j���������}�t����������t����������|�������������j��������|||fi�|��}t ����������|t ����������j��������������������r||_���������|S�)zFix fieldname for ForeignKeys.)�name�superr����alter_add_columnr ����pw�ForeignKeyField)r2���r3���r5���r6����kwargsrP����op� __class__s��� �r#���rR���zSchemaMigrator.alter_add_columnS���sV���������z�� 9�U�>�4� (� (� 9�%��e� ^� ^�W]� ^� ^���e�R�/�0�0�� ��E�J�� r%���)r���r���r���r���)r(���r���r'���r)���r���r*���)r3���r4���r5���r4���r6���r7���r���r8����r3���r4���r@���r4���r6���r7���r���r���)rG���r4���r���r���)r3���r4���r5���r4���r6���r7���r���r���) �__name__� __module__�__qualname__�__doc__�classmethodr$���r.���r���r?���r:���rG���rR���� __classcell__�rW���s���@r#���r���r���%���s�������������������@��@��@���[�@��@D��9��9��9��9��9��9��� �� �� ���Y� ����������!��!��!���Y�!�������������������r%���r���c������������������������e�Zd�ZdZdd �Zd S�)r���zSupport MySQL.r3���r4���r@���r6���r7���r���r���c����������������������|�������������������������������������}|j��������dc}|_��������|����������������������||���������������������������������d���������������������������������|���������������������|������������������������}||_��������|S�)rB���Tz MODIFY COLUMN rC���rI���s��� r#���r:���z!MySQLMigrator.alter_change_columna���sl���������!�!��!&��T�� �E�J�����U�+�+�3�3�4E�F�F�J�J�5�9�9�UX�>�>�Z�Z���� �� r%���NrX���)rY���rZ���r[���r\���r:���r0���r%���r#���r���r���^���s.��������������������������r%���r���c�������������������$�������e�Zd�ZdZd ��fd �Z��xZS�)r���z%Support the migrations in postgresql.r3���r4���r5���r6���r7���r���r���c������������������������t����������t����������|����������������������������������|||������������}|j�����������������������������dd�������������|j�����������������������������dd�������������|S�)rB�������TYPE� )rQ���r���r:����_sql�insert)r2���r3���r5���r6����contextrW���s��� �r#���r:���z&PostgresqlMigrator.alter_change_columnm���s[��������*�D�1�1�E�E�e�[�Z_�`�`������B��'�'�'�����B��$�$�$��r%���)r3���r4���r5���r4���r6���r7���r���r���)rY���rZ���r[���r\���r:���r^���r_���s���@r#���r���r���j���sC���������������/�/�������������������r%���r���c�������������������(�����e�Zd�ZdZdd�dd �Zdd�ZdS�)r���z!Support the migrations in sqlite.Tr&���r(����pw.Modelr'���r)���r���r���c�����������������������fd�S�)z0Sqlite doesnt support cascade syntax by default.c������������������0������������������������������d�������������S�)NFr&���r-���)r(���s����r#���r/���z+SqliteMigrator.drop_table.<locals>.<lambda>z���s�������u�'�'��'�6�6��r%���r0���r1���s��� ` r#���r.���zSqliteMigrator.drop_tablex���s�������6�6�6�6�6r%���r3���r4���r@���r6���r7���r���c�����������������@�����������fd�}������������������������|||������������S�)rB���c������������������������������������������������������������}|�������������������������������������������|�������������������������|�����������������������������������d���������S�)Nr���)rD���rG���rH����query)�c_name�c_defrJ���r6���r2���s��� ��r#����fnz.SqliteMigrator.alter_change_column.<locals>.fn���sB��������#�#�%�%�C��G�G�E�I�I�c�N�N�#�#�#��9�9�;�;�q�>�!r%���)�_update_column)r2���r3���r@���r6���rs���s���` ` r#���r:���z"SqliteMigrator.alter_change_column|���s<�������� "�� "�� "�� "�� "�� "� ��"�"�5�&�"�5�5�5r%���N)r(���rk���r'���r)���r���r���)r3���r4���r@���r4���r6���r7���r���r���)rY���rZ���r[���r\���r.���r:���r0���r%���r#���r���r���u���sO��������������+�+�=A��7��7��7��7��7��7�6��6��6��6��6��6r%���r���c�������������������>�����e�Zd�ZdZd��Zdd�Zdd�Zdd �Zdd�Zd��Z d S�)�ORM�� __tables__� __models__c�����������������"�����i�|�_���������i�|�_��������d�S��Nrw����r2���s��� r#����__init__zORM.__init__����s�������������r%���r(���r���c�����������������L�����||�j���������|j��������<���||�j��������|j��������j��������<���d�S�r{����ry���rY���rx����_meta� table_name�r2���r(���s��� r#����addzORM.add����s'������*/�����'�27�����.�/�/�/r%���c�����������������D�����|�j���������|j��������=�|�j��������|j��������j��������=�d�S�r{���r���r����s��� r#����removez ORM.remove����s#�������O�E�N�+��O�E�K�2�3�3�3r%���rP���r4���r���c����������������������|�j���������|���������S�r{���)ry����r2���rP���s��� r#����__getattr__zORM.__getattr__�������������t�$�$r%���c����������������������|�j���������|���������S�r{���)rx���r����s��� r#����__getitem__zORM.__getitem__����r����r%���c�����������������N�����t����������|�j�������������������������������������������������������S�r{���)�iterry����valuesr|���s��� r#����__iter__zORM.__iter__����s�������D�O�*�*�,�,�-�-�-r%���N)r(���r���)rP���r4���r���r���) rY���rZ���r[���� __slots__r}���r����r����r����r����r����r0���r%���r#���rv���rv�������s���������������,�I������8��8��8��8�4��4��4��4�%��%��%��%�%��%��%��%�.��.��.��.��.r%���rv���c������������������������e�Zd�ZdZd5d�Zd��Zd��Zed6d ���������������Zed7d ���������������Zd8d�Zd9d�Z d:d�Z d6d�ZeZdd�d;d�Z e Zd<d�ZeZd<d �ZeZdd�d=d"�ZeZd>d$�Zd?d'�ZeZd@d(�Zd)d*�dAd,�ZdAd-�ZdBd.�ZdBd/�ZdCd3�Zd4S�)D�MigratorzProvide migrations.r���r���c�����������������������t������������������������|�_��������t����������|t����������j��������������������r|j��������}||�_��������g�|�_��������t����������� ��������������������|������������|�_ ��������dS�)zInitialize the migrator.N)rv����ormr ���rS����Proxy�obj�__database__�__ops__r���r$����__migrator__)r2���r���s��� r#���r}���zMigrator.__init__����sS������������h���)�)�� $��|�H�$���9;���*�8�8��B�B����r%���c���������������������|�j���������D�]p}t����������|t����������������������r5t����������j��������d|j��������|j���������������������|�������������������������������������Lt����������j��������d|j����������������������|����������������qg�|�_���������dS�)zRun operations.z%s %szRun %sN) r����r ���r���r����info�method�args�runrY���)r2���rV���s��� r#����__call__zMigrator.__call__����sx�������,�� �� �B��"�i�(�(�� ���G�R�Y���8�8�8����������H�b�k�2�2�2�����������r%���c�����������������*�����t����������|�j��������������������S�)zIterate over models.)r����r����r|���s��� r#���r����zMigrator.__iter__����s�������D�H�~�~�r%���r(���r���r���c����������������������d�S�r{���r0���r����s��� r#���� __get_model__zMigrator.__get_model__������������r%���r4���r���c����������������������d�S�r{���r0���r����s��� r#���r����zMigrator.__get_model__����r����r%����Union[TVModelType, str]�Union[TVModelType, TModelType]c�����������������������t����������|t����������������������rM||�j��������j��������v�r|�j��������j��������|���������S�||�j��������j��������v�r |�j��������|���������S�t����������d|z���������������|S�)zGet model by name.zModel %s not found)r ���r4���r����ry���rx���r!���r����s��� r#���r����zMigrator.__get_model__����si�������e�S�!�!�� ;����+�+�+��x�*�5�1�1����+�+�+��x���&��1�E�9�:�:�:��r%���rG���c����������������������t����������t�����������|�j��������j��������|g|�R���������������}|�j�����������������������������|�������������dS�)rM���N)r ���r���r����rG���r�����append)r2���rG���rN���rV���s��� r#���rG���zMigrator.sql����sF������ �)�2�T�.�2�3�@��@�@�@� A� A������B�����r%����funcr���c�����������������J��������|�j���������������������������������fd��������������dS�)zRun a python function.c����������������������������i����S�r{���r0���)r����r����rU���s������r#���r/���z!Migrator.python.<locals>.<lambda>����s�������D�D�$�$9�&�$9�$9��r%���N)r����r����)r2���r����r����rU���s��� ```r#����pythonzMigrator.python����s1�������������9�9�9�9�9�9�:�:�:�:�:r%���c����������������������|j���������}|�j�����������������������������|�������������|�j��������|_��������|�j�����������������������������|j���������������������|S�)zUCreate model and table in database. >> migrator.create_table(model) )r����r����r����r����r���r����r�����create_table)r2���r(����metas��� r#���r����zMigrator.create_table����sG������ ��{������U�����)�� �����E�.�/�/�/��r%���Tr&����Union[str, TModelType]r'���r)���c����������������������|�����������������������|������������}|�j�����������������������������|�������������|�j�����������������������������|�j�����������������������������||��������������������������dS�)zaDrop model and table from database. >> migrator.drop_table(model, cascade=True) r&���N)r����r����r����r����r����r����r.���r1���s��� r#���r.���zMigrator.drop_table����s]������ ��"�"�5�)�)��������������D�-�8�8���8�P�P�Q�Q�Q�Q�Qr%����fieldsr7���c���������������������|�����������������������|������������}|j��������}|�����������������������������������D�]�\��}}|���������������������||�������������|�j�����������������������������|�j�����������������������������|j��������|j ��������|�������������������������|j ��������r@|�j�����������������������������|�j�����������������������������|j��������|j ��������fd����������������������������|S�)zCreate new fields.T��unique)r����r�����items� add_fieldr����r����r����� add_columnr����r5���r����� add_index)r2���r(���r����r����rP���r6���s��� r#����add_columnszMigrator.add_columns����s��������"�"�5�)�)���{��!�<�<�>�>�� �� �K�D�%��N�N�4��'�'�'��L����!�,�,��O�U�%6����� �� �� � ��|�� ���#�#��%�/�/���%�BS�AU�^b�/�c�c���������r%���c�����������������|����|�����������������������|������������}|j��������}|�����������������������������������D��]�\��}}|j�����������������������������||������������}|o|j��������}|���������������������||�������������t����������|t����������j ��������������������r8|�j �����������������������������|�j��������� ��������������������|j��������|�������������������������||j��������k����r>|�j �����������������������������|�j�����������������������������|j��������||j���������������������������������t����������|t����������j ��������������������r||j��������r|j��������nd}|j��������r|j��������nd} |�j �����������������������������|�j�����������������������������|j��������|j��������|j��������j��������j��������|j��������j��������|| ���������������������������q|�j �����������������������������|�j�����������������������������|j��������|j��������|�������������������������|j��������|j��������k����r���|j��������r[|j��������f|j��������f} |�j ������������������������������|�j��������j��������|j��������g| �R����������������|j�����������������������������| ���������������#|j��������} |�j �����������������������������|�j�����������������������������|j��������| �������������������������|j�����������������������������|j��������f|j��������f����������������|S�)zChange fields.�RESTRICT)r����r����r����r�����getr5���r����r ���rS���rT���r����r����r�����drop_foreign_key_constraintr����� rename_column� on_delete� on_update�add_foreign_key_constraint� rel_model� rel_fieldrP���r?���r����r�����indexes� drop_indexr����)r2���r(���r����r����rP���r6���� old_field�old_column_namer����r�����indexs��� r#����change_columnszMigrator.change_columns��s�������"�"�5�)�)���{��!�<�<�>�>��1 N��1 N�K�D�%������e�4�4�I�'�A�I�,A�O��N�N�4��'�'�'��)�R�%7�8�8�� ���#�#��%�A�A�$�/�Sb�c�c��������%�"3�3�3���#�#��%�3�3����%�:K�����������%��!3�4�4�� �/4��N�E�O�O�J� �/4��N�E�O�O�J� ���#�#��%�@�@����)���-�8���,�!�!� ��� �� �� ����L����!�/�/��O�U�%6����� �� �� ���|�y�/�/�/���|�� N��*�,�e�l�:����#�#�$?�D�$5�$?���$X�RW�$X�$X�$X�Y�Y�Y���#�#�E�*�*�*�*��)����#�#�D�$5�$@�$@���RW�$X�$X�Y�Y�Y���#�#�e�&7�%9�9�;K�$L�M�M�M�M��r%����namesc����������������������|�����������������������|������������}|j��������}�fd�|j�������������������������������������������D���������������}|D�]�}|����������������������||�������������|j��������rSt ����������|j��������|j��������g������������}|�j ��������� ��������������������|�j�����������������������������|j��������|�������������������������|�j ��������� ��������������������|�j��������� ��������������������|j��������|j��������|����������������������������|S�)zRemove fields from model.c�����������������&������g�|�] }|j����������v��|��S�r0���)rP���)�.0r6���r����s��� �r#���� <listcomp>z)Migrator.drop_columns.<locals>.<listcomp>G��s%�������Q�Q�Q�E�U�Z�5�=P�=P�%�=P�=P�=Pr%���r&���)r����r����r����r����� __del_field__r����r���r����r5���r����r����r����r�����drop_column)r2���r(���r'���r����r����r����r6���� index_names��� ` r#����drop_columnszMigrator.drop_columnsA��s��������"�"�5�)�)���{��Q�Q�Q�Q�T�[�%7�%7�%9�%9�Q�Q�Q���� �� �E����u�e�,�,�,��|�� _�,�T�_�u�?P�>Q�R�R� ���#�#�D�$5�$@�$@���R\�$]�$]�^�^�^��L����!�-�-��O�U�%6���.����� �� �� �� � ��r%���r6���c�����������������V����|j���������}|���������������������|j���������������������t����������||j���������������������t ����������|t ����������j��������������������rX|j��������}|j��������|j��������k����r|dz ��}t����������||������������rt����������||�������������t����������|j ��������|j ���������������������dS�dS�)zDelete field from model.�_idN)r�����remove_fieldrP����delattrr ���rS���rT���r5����hasattrr�����backref)r2���r(���r6���r�����obj_id_names��� r#���r����zMigrator.__del_field__V��s��������{�����%�*�%�%�%���u�z�"�"�"��e�R�/�0�0�� 4��+�K�� �E�J�.�.��u�$���u�k�*�*�� ,���{�+�+�+��E�O�U�]�3�3�3�3�3� 4�� 4r%����old_name�new_namec����������������������|�����������������������|������������}|j��������}|j��������|���������}t����������|t����������j��������������������r|j��������}|����������������������||�������������|x|_��������|_��������t����������|t����������j��������������������r|j��������dz���|_��������|� ��������������������||�������������|�j �����������������������������|�j��������� ��������������������|j��������||j���������������������������������|S�)zRename field in model.r����)r����r����r����r ���rS���rT���r5���r����rP���r����r����r����r����r����r����)r2���r(���r����r����r����r6���s��� r#���r����zMigrator.rename_columnc��s���������"�"�5�)�)���{����H�%���e�R�/�0�0�� )��(�H����5�%�(�(�(�)1�1�� �U�&��e�R�/�0�0�� :� %� 1�E� 9�E�����x��'�'�'�������+�+�D�O�X�u�GX�Y�Y� �� �� ���r%���c�����������������(����|�����������������������|������������}|j��������}|j��������}|�j�����������������������������|�������������||_��������|�j�����������������������������|�������������|�j�����������������������������|�j��������� ��������������������||�������������������������|S�)zRename table in database.) r����r����r����r����r����r����r����r����r�����rename_table)r2���r(���r����r����r����s��� r#���r����zMigrator.rename_tablex��s��������"�"�5�)�)���{���?����������"�������U��������D�-�:�:�8�X�N�N�O�O�O��r%���Fr�����columnsc��������������������|�����������������������|������������}|j��������}|j�����������������������������||f�������������g�}|D�]X}|j�����������������������������|������������}t ����������|������������dk����r||_��������|�|_��������|���������������������|j ����������������������Y|�j �����������������������������|�j�����������������������������|j ��������||��������������������������|S�)zCreate indexes.r���r����)r����r����r����r����r����r�����lenr����r����r5���r����r����r����r����)r2���r(���r����r����r�����columns_�colr6���s��� r#���r����zMigrator.add_index���s��������"�"�5�)�)���{������W�f�-�.�.�.����� /�� /�C��K�O�O�C�(�(�E��7�|�|�q� � �%���"(�j����O�O�E�-�.�.�.�.�����D�-�7�7����Z`�7�a�a�b�b�b��r%���c�����������������������|�����������������������|������������}|j��������}g�}�D�]Z}|j�����������������������������|������������}|s�t �����������������������dk����rdx|_��������|_��������|���������������������|j����������������������[t����������|j ��������|������������}�fd�|j��������D���������������|_��������|�j�����������������������������|�j �����������������������������|j ��������|�������������������������|S�)z Drop indexes.r���Fc�����������������*������g�|�]\��}}�|k�����||f��S�r0���r0���)r�����cols�_r����s��� �r#���r����z'Migrator.drop_index.<locals>.<listcomp>���s&�������S�S�S�i�t�Q�7�d�?�?��q� �?�?�?r%���)r����r����r����r����r����r����r����r����r5���r���r����r����r����r����r����)r2���r(���r����r����r����r����r6���r����s��� ` r#���r����zMigrator.drop_index���s���������"�"�5�)�)���{������ /�� /�C��K�O�O�C�(�(�E��� ���7�|�|�q� � �-2�2���u�{��O�O�E�-�.�.�.�.�$�T�_�h�?�?� �S�S�S�S�4�<�S�S�S�������D�-�8�8���*�U�U�V�V�V��r%���c�����������������������|�����������������������|������������}|j��������}|D�]S}|j��������|���������}d|_��������|�j�����������������������������|�j�����������������������������|j��������|j ����������������������������������T|S�)z Add not null.F) r����r����r����r;���r����r����r����r=���r����r5����r2���r(���r����r����rP���r6���s��� r#���r=���zMigrator.add_not_null���sw�������"�"�5�)�)���{���� d�� d�D��K��%�E��E�J��L���� 1� >� >�t��PU�Pa� b� b�c�c�c�c��r%���c�����������������������|�����������������������|������������}|j��������}|D�]S}|j��������|���������}d|_��������|�j�����������������������������|�j�����������������������������|j��������|j ����������������������������������T|S�)zDrop not null.T) r����r����r����r;���r����r����r����� drop_not_nullr����r5���r����s��� r#���r����zMigrator.drop_not_null���sw�������"�"�5�)�)���{���� e�� e�D��K��%�E��E�J��L���� 1� ?� ?���QV�Qb� c� c�d�d�d�d��r%���rP����defaultr���c�����������������������|�����������������������|������������}|j��������}|j��������|���������}|x|j��������|<���|_��������|�j�����������������������������|�j�����������������������������|j ��������||�������������������������|S�)zAdd default.) r����r����r�����defaultsr����r����r����r����� apply_defaultr����)r2���r(���rP���r����r����r6���s��� r#����add_defaultzMigrator.add_default���sn�������"�"�5�)�)���{����D�!��/6�6�� �e��u�}�����D�-�;�;�D�O�T�SX�Y�Y�Z�Z�Z��r%���N)r���r���)r(���r���r���r���)r(���r4���r���r���)r(���r����r���r����)rG���r4���)r����r���)r(���r����r'���r)���)r(���r����r����r7���r���r���)r(���r����r����r4���r'���r)���r���r���)r(���r���r6���r7���)r(���r����r����r4���r����r4���r���r���)r(���r����r����r4���r���r���)r(���r����r����r4���r���r���)r(���r����r����r4���r���r���)r(���r����rP���r4���r����r���r���r���)rY���rZ���r[���r\���r}���r����r����r ���r����rG���r����r�����create_modelr.����remove_modelr����� add_fieldsr����� change_fieldsr����� remove_fieldsr����r�����rename_fieldr����r����r����r=���r����r����r0���r%���r#���r����r��������s0��������������� C�� C�� C�� C� �� �� ���������������X�����������X�� �� �� �� � �� �� �� � ;��;��;��;� �� �� �� �� �L�KO��R��R��R��R��R��R���L��������"��J�7��7��7��7�r�#�M��KO������������&�!�M�4��4��4��4��������&�!�L� �� �� �� ��NS�������������$�������(������������������������r%���r����)%r\���� __future__r����typingr���r���r���r���r���r ���r ����peeweerS����playhouse.migrater���r���r ���r���r���r���r���r���r����MqMr����PgMr����ScMr����SqM�logsr����typesr���r���rv���r����r0���r%���r#����<module>r�����sx���������"��"��"��"��"��"�������������������������������������������� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��3��2��2��2��2��2��7��7��7��7��7��7��3��3��3��3��3��3��3��3��3��3��3��3���������������/�.�.�.�.�.�.�.�.�6��6��6��6��6�S��6��6��6�r �� �� �� �� �N�C�� �� �� ������������������6��6��6��6��6�^�S��6��6��6�$.��.��.��.��.��.��.��.�2d��d��d��d��d��d��d��d��d��dr%���