Copyright
Table of Contents
Preface
Who This Book Is For
How to Use the Examples
Assumptions This Book Makes
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
Introduction to SQLAlchemy
Why Use SQLAlchemy?
SQLAlchemy Core and the SQL Expression Language
ORM
Choosing Between SQLAlchemy Core and ORM
Installing SQLAlchemy and Connecting to a Database
Installing Database Drivers
Connecting to a Database
Part I. SQLAlchemy Core
Chapter 1. Schema and Types
Types
Metadata
Tables
Columns
Keys and Constraints
Indexes
Relationships and ForeignKeyConstraints
Persisting the Tables
Chapter 2. Working with Data via SQLAlchemy Core
Inserting Data
Querying Data
ResultProxy
Controlling the Columns in the Query
Ordering
Limiting
Built-In SQL Functions and Labels
Filtering
ClauseElements
Operators
Boolean Operators
Conjunctions
Updating Data
Deleting Data
Joins
Aliases
Grouping
Chaining
Raw Queries
Chapter 3. Exceptions and Transactions
Exceptions
AttributeError
IntegrityError
Handling Errors
Transactions
Chapter 4. Testing
Testing with a Test Database
Using Mocks
Chapter 5. Reflection
Reflecting Individual Tables
Reflecting a Whole Database
Query Building with Reflected Objects
Part II. SQLAlchemy ORM
Chapter 6. Defining Schema with SQLAlchemy ORM
Defining Tables via ORM Classes
Keys, Constraints, and Indexes
Relationships
Persisting the Schema
Chapter 7. Working with Data via SQLAlchemy ORM
The Session
Inserting Data
Querying Data
Controlling the Columns in the Query
Ordering
Limiting
Built-In SQL Functions and Labels
Filtering
Operators
Boolean Operators
Conjunctions
Updating Data
Deleting Data
Joins
Grouping
Chaining
Raw Queries
Chapter 8. Understanding the Session and Exceptions
The SQLAlchemy Session
Session States
Exceptions
MultipleResultsFound Exception
DetachedInstanceError
Transactions
Chapter 9. Testing with SQLAlchemy ORM
Testing with a Test Database
Using Mocks
Chapter 10. Reflection with SQLAlchemy ORM and Automap
Reflecting a Database with Automap
Reflected Relationships
Part III. Alembic
Chapter 11. Getting Started with Alembic
Creating the Migration Environment
Configuring the Migration Environment
Chapter 12. Building Migrations
Generating a Base Empty Migration
Autogenerating a Migration
Building a Migration Manually
Chapter 13. Controlling Alembic
Determining a Database’s Migration Level
Downgrading Migrations
Marking the Database Migration Level
Generating SQL
Chapter 14. Cookbook
Hybrid Attributes
Association Proxy
Integrating SQLAlchemy with Flask
SQLAcodegen
Chapter 15. Where to Go from Here
Index
About the Authors