METADATA 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. Metadata-Version: 2.4
  2. Name: alembic
  3. Version: 1.15.2
  4. Summary: A database migration tool for SQLAlchemy.
  5. Author-email: Mike Bayer <mike_mp@zzzcomputing.com>
  6. License: MIT
  7. Project-URL: Homepage, https://alembic.sqlalchemy.org
  8. Project-URL: Documentation, https://alembic.sqlalchemy.org/en/latest/
  9. Project-URL: Changelog, https://alembic.sqlalchemy.org/en/latest/changelog.html
  10. Project-URL: Source, https://github.com/sqlalchemy/alembic/
  11. Project-URL: Issue Tracker, https://github.com/sqlalchemy/alembic/issues/
  12. Classifier: Development Status :: 5 - Production/Stable
  13. Classifier: Intended Audience :: Developers
  14. Classifier: Environment :: Console
  15. Classifier: License :: OSI Approved :: MIT License
  16. Classifier: Operating System :: OS Independent
  17. Classifier: Programming Language :: Python
  18. Classifier: Programming Language :: Python :: 3
  19. Classifier: Programming Language :: Python :: 3.9
  20. Classifier: Programming Language :: Python :: 3.10
  21. Classifier: Programming Language :: Python :: 3.11
  22. Classifier: Programming Language :: Python :: 3.12
  23. Classifier: Programming Language :: Python :: 3.13
  24. Classifier: Programming Language :: Python :: Implementation :: CPython
  25. Classifier: Programming Language :: Python :: Implementation :: PyPy
  26. Classifier: Topic :: Database :: Front-Ends
  27. Requires-Python: >=3.9
  28. Description-Content-Type: text/x-rst
  29. License-File: LICENSE
  30. Requires-Dist: SQLAlchemy>=1.4.0
  31. Requires-Dist: Mako
  32. Requires-Dist: typing-extensions>=4.12
  33. Provides-Extra: tz
  34. Requires-Dist: tzdata; extra == "tz"
  35. Dynamic: license-file
  36. Alembic is a database migrations tool written by the author
  37. of `SQLAlchemy <http://www.sqlalchemy.org>`_. A migrations tool
  38. offers the following functionality:
  39. * Can emit ALTER statements to a database in order to change
  40. the structure of tables and other constructs
  41. * Provides a system whereby "migration scripts" may be constructed;
  42. each script indicates a particular series of steps that can "upgrade" a
  43. target database to a new version, and optionally a series of steps that can
  44. "downgrade" similarly, doing the same steps in reverse.
  45. * Allows the scripts to execute in some sequential manner.
  46. The goals of Alembic are:
  47. * Very open ended and transparent configuration and operation. A new
  48. Alembic environment is generated from a set of templates which is selected
  49. among a set of options when setup first occurs. The templates then deposit a
  50. series of scripts that define fully how database connectivity is established
  51. and how migration scripts are invoked; the migration scripts themselves are
  52. generated from a template within that series of scripts. The scripts can
  53. then be further customized to define exactly how databases will be
  54. interacted with and what structure new migration files should take.
  55. * Full support for transactional DDL. The default scripts ensure that all
  56. migrations occur within a transaction - for those databases which support
  57. this (Postgresql, Microsoft SQL Server), migrations can be tested with no
  58. need to manually undo changes upon failure.
  59. * Minimalist script construction. Basic operations like renaming
  60. tables/columns, adding/removing columns, changing column attributes can be
  61. performed through one line commands like alter_column(), rename_table(),
  62. add_constraint(). There is no need to recreate full SQLAlchemy Table
  63. structures for simple operations like these - the functions themselves
  64. generate minimalist schema structures behind the scenes to achieve the given
  65. DDL sequence.
  66. * "auto generation" of migrations. While real world migrations are far more
  67. complex than what can be automatically determined, Alembic can still
  68. eliminate the initial grunt work in generating new migration directives
  69. from an altered schema. The ``--autogenerate`` feature will inspect the
  70. current status of a database using SQLAlchemy's schema inspection
  71. capabilities, compare it to the current state of the database model as
  72. specified in Python, and generate a series of "candidate" migrations,
  73. rendering them into a new migration script as Python directives. The
  74. developer then edits the new file, adding additional directives and data
  75. migrations as needed, to produce a finished migration. Table and column
  76. level changes can be detected, with constraints and indexes to follow as
  77. well.
  78. * Full support for migrations generated as SQL scripts. Those of us who
  79. work in corporate environments know that direct access to DDL commands on a
  80. production database is a rare privilege, and DBAs want textual SQL scripts.
  81. Alembic's usage model and commands are oriented towards being able to run a
  82. series of migrations into a textual output file as easily as it runs them
  83. directly to a database. Care must be taken in this mode to not invoke other
  84. operations that rely upon in-memory SELECTs of rows - Alembic tries to
  85. provide helper constructs like bulk_insert() to help with data-oriented
  86. operations that are compatible with script-based DDL.
  87. * Non-linear, dependency-graph versioning. Scripts are given UUID
  88. identifiers similarly to a DVCS, and the linkage of one script to the next
  89. is achieved via human-editable markers within the scripts themselves.
  90. The structure of a set of migration files is considered as a
  91. directed-acyclic graph, meaning any migration file can be dependent
  92. on any other arbitrary set of migration files, or none at
  93. all. Through this open-ended system, migration files can be organized
  94. into branches, multiple roots, and mergepoints, without restriction.
  95. Commands are provided to produce new branches, roots, and merges of
  96. branches automatically.
  97. * Provide a library of ALTER constructs that can be used by any SQLAlchemy
  98. application. The DDL constructs build upon SQLAlchemy's own DDLElement base
  99. and can be used standalone by any application or script.
  100. * At long last, bring SQLite and its inability to ALTER things into the fold,
  101. but in such a way that SQLite's very special workflow needs are accommodated
  102. in an explicit way that makes the most of a bad situation, through the
  103. concept of a "batch" migration, where multiple changes to a table can
  104. be batched together to form a series of instructions for a single, subsequent
  105. "move-and-copy" workflow. You can even use "move-and-copy" workflow for
  106. other databases, if you want to recreate a table in the background
  107. on a busy system.
  108. Documentation and status of Alembic is at https://alembic.sqlalchemy.org/
  109. The SQLAlchemy Project
  110. ======================
  111. Alembic is part of the `SQLAlchemy Project <https://www.sqlalchemy.org>`_ and
  112. adheres to the same standards and conventions as the core project.
  113. Development / Bug reporting / Pull requests
  114. ___________________________________________
  115. Please refer to the
  116. `SQLAlchemy Community Guide <https://www.sqlalchemy.org/develop.html>`_ for
  117. guidelines on coding and participating in this project.
  118. Code of Conduct
  119. _______________
  120. Above all, SQLAlchemy places great emphasis on polite, thoughtful, and
  121. constructive communication between users and developers.
  122. Please see our current Code of Conduct at
  123. `Code of Conduct <https://www.sqlalchemy.org/codeofconduct.html>`_.
  124. License
  125. =======
  126. Alembic is distributed under the `MIT license
  127. <https://opensource.org/licenses/MIT>`_.