Crear tablas con SQLAlchemy
Antes, usaste el objeto Table para reflejar una tabla de una base de datos existente, pero ¿y si quisieras crear una tabla nueva? Seguirías usando el objeto Table; sin embargo, tendrías que sustituir los parámetros autoload y autoload_with por objetos Column.
El objeto Column recibe un nombre, un tipo de SQLAlchemy con un formato opcional y argumentos de palabra clave opcionales para distintas restricciones.
Al definir la tabla, recuerda cómo en el vídeo Jason indicó 255 como longitud máxima de un String usando Column('name', String(255)). Echar un vistazo a las diapositivas del vídeo puede ayudarte.
Después de definir la tabla, puedes crearla en la base de datos usando el método .create_all() sobre los metadatos y proporcionando el engine como único parámetro. ¡Adelante!
Este ejercicio forma parte del curso
Introducción a las bases de datos en Python
Instrucciones del ejercicio
- Importa
Table,Column,String,Integer,Float,Booleandesdesqlalchemy. - Crea una tabla nueva llamada
datacon las columnas'name'(String(255)),'count'(Integer()),'amount'(Float()) y'valid'(Boolean()). El segundo argumento deTable()debe sermetadata, que ya se ha inicializado. - Crea la tabla en la base de datos pasando
engineametadata.create_all().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import Table, Column, String, Integer, Float, Boolean from sqlalchemy
from sqlalchemy import ____, ____, ____, ____, ____, ____
# Define a new table with a name, count, amount, and valid column: data
data = Table('data', ____,
Column(____, ____),
Column('count', Integer()),
Column(____, ____),
Column(____, ____)
)
# Use the metadata to create the table
metadata.create_all(____)
# Print table details
print(repr(data))