"""Added ExternalSoftwareEnvironment, ExternalHardwareInformation, constraints for syncs
Revision ID: 9a8ce1e52efb
Revises: f60593780969
Create Date: 2019-10-07 07:40:32.070193+00:00
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = "9a8ce1e52efb"
down_revision = "f60593780969"
branch_labels = None
depends_on = None
[docs]def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table(
"external_hardware_information",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("cpu_vendor", sa.Integer(), nullable=True),
sa.Column("cpu_model", sa.Integer(), nullable=True),
sa.Column("cpu_cores", sa.Integer(), nullable=True),
sa.Column("cpu_model_name", sa.String(length=256), nullable=True),
sa.Column("cpu_family", sa.Integer(), nullable=True),
sa.Column("cpu_physical_cpus", sa.Integer(), nullable=True),
sa.Column("gpu_model_name", sa.String(length=256), nullable=True),
sa.Column("gpu_vendor", sa.String(length=256), nullable=True),
sa.Column("gpu_cores", sa.Integer(), nullable=True),
sa.Column("gpu_memory_size", sa.Integer(), nullable=True),
sa.Column("ram_size", sa.Integer(), nullable=True),
sa.PrimaryKeyConstraint("id"),
)
op.create_table(
"external_software_environment",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("environment_name", sa.String(length=256), nullable=True),
sa.Column("python_version", sa.String(length=256), nullable=True),
sa.Column("image_name", sa.String(length=256), nullable=True),
sa.Column("image_sha", sa.String(length=256), nullable=True),
sa.Column("os_name", sa.String(length=256), nullable=True),
sa.Column("os_version", sa.String(length=256), nullable=True),
sa.Column("cuda_version", sa.String(length=256), nullable=True),
sa.Column("environment_type", postgresql.ENUM("RUNTIME", "BUILDTIME", name="environment_type"), nullable=False),
sa.PrimaryKeyConstraint("id"),
)
op.add_column("adviser_run", sa.Column("external_build_software_environment_id", sa.Integer(), nullable=True))
op.add_column("adviser_run", sa.Column("external_hardware_information_id", sa.Integer(), nullable=True))
op.add_column("adviser_run", sa.Column("external_run_software_environment_id", sa.Integer(), nullable=True))
op.drop_constraint("adviser_run_user_build_software_environment_id_fkey", "adviser_run", type_="foreignkey")
op.drop_constraint("adviser_run_user_run_software_environment_id_fkey", "adviser_run", type_="foreignkey")
op.drop_constraint("adviser_run_hardware_information_id_fkey", "adviser_run", type_="foreignkey")
op.create_foreign_key(
None,
"adviser_run",
"external_software_environment",
["external_run_software_environment_id"],
["id"],
ondelete="CASCADE",
)
op.create_foreign_key(
None,
"adviser_run",
"external_software_environment",
["external_build_software_environment_id"],
["id"],
ondelete="CASCADE",
)
op.create_foreign_key(
None,
"adviser_run",
"external_hardware_information",
["external_hardware_information_id"],
["id"],
ondelete="CASCADE",
)
op.drop_column("adviser_run", "user_build_software_environment_id")
op.drop_column("adviser_run", "user_run_software_environment_id")
op.drop_column("adviser_run", "hardware_information_id")
op.drop_column("hardware_information", "is_user")
op.alter_column("python_package_version", "os_name", existing_type=sa.VARCHAR(length=256), nullable=False)
op.alter_column("python_package_version", "os_version", existing_type=sa.VARCHAR(length=256), nullable=False)
op.alter_column("python_package_version", "python_version", existing_type=sa.VARCHAR(length=256), nullable=False)
op.drop_column("software_environment", "is_user")
# ### end Alembic commands ###
[docs]def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column("software_environment", sa.Column("is_user", sa.BOOLEAN(), autoincrement=False, nullable=False))
op.alter_column("python_package_version", "python_version", existing_type=sa.VARCHAR(length=256), nullable=True)
op.alter_column("python_package_version", "os_version", existing_type=sa.VARCHAR(length=256), nullable=True)
op.alter_column("python_package_version", "os_name", existing_type=sa.VARCHAR(length=256), nullable=True)
op.add_column("hardware_information", sa.Column("is_user", sa.BOOLEAN(), autoincrement=False, nullable=False))
op.add_column("adviser_run", sa.Column("hardware_information_id", sa.INTEGER(), autoincrement=False, nullable=True))
op.add_column(
"adviser_run", sa.Column("user_run_software_environment_id", sa.INTEGER(), autoincrement=False, nullable=True)
)
op.add_column(
"adviser_run", sa.Column("user_build_software_environment_id", sa.INTEGER(), autoincrement=False, nullable=True)
)
op.drop_constraint(None, "adviser_run", type_="foreignkey")
op.drop_constraint(None, "adviser_run", type_="foreignkey")
op.drop_constraint(None, "adviser_run", type_="foreignkey")
op.create_foreign_key(
"adviser_run_hardware_information_id_fkey",
"adviser_run",
"hardware_information",
["hardware_information_id"],
["id"],
ondelete="CASCADE",
)
op.create_foreign_key(
"adviser_run_user_run_software_environment_id_fkey",
"adviser_run",
"software_environment",
["user_run_software_environment_id"],
["id"],
ondelete="CASCADE",
)
op.create_foreign_key(
"adviser_run_user_build_software_environment_id_fkey",
"adviser_run",
"software_environment",
["user_build_software_environment_id"],
["id"],
ondelete="CASCADE",
)
op.drop_column("adviser_run", "external_run_software_environment_id")
op.drop_column("adviser_run", "external_hardware_information_id")
op.drop_column("adviser_run", "external_build_software_environment_id")
op.drop_table("external_software_environment")
op.drop_table("external_hardware_information")
# ### end Alembic commands ###