cloudfoundry-community/bosh-cloudstack-cpi

View on GitHub
bosh-director/db/migrations/director/20110209010747_initial.rb

Summary

Maintainability
A
1 hr
Test Coverage
# Copyright (c) 2009-2012 VMware, Inc.

Sequel.migration do
  change do
    create_table :releases do
      primary_key :id
      String :name, :null => false, :unique => true
    end

    create_table :release_versions do
      primary_key :id
      String :version, :null => false
      foreign_key :release_id, :releases, :null => false
    end

    create_table :packages do
      primary_key :id
      String :name, :null => false
      String :version, :null => false
      String :blobstore_id, :null => false
      String :sha1, :null => false
      String :dependency_set_json, :null => false, :text => true
      foreign_key :release_id, :releases, :null => false
      unique [:release_id, :name, :version]
    end

    create_table :templates do
      primary_key :id
      String :name, :null => false
      String :version, :null => false
      String :blobstore_id, :null => false
      String :sha1, :null => false
      String :package_names_json, :null => false, :text => true
      foreign_key :release_id, :releases, :null => false
      unique [:release_id, :name, :version]
    end

    create_table :stemcells do
      primary_key :id
      String :name, :null => false
      String :version, :null => false
      String :cid, :null => false
      unique [:name, :version]
    end

    create_table :compiled_packages do
      primary_key :id
      String :blobstore_id, :null => false
      String :sha1, :null => false
      String :dependency_key, :null => false
      Integer :build, :unsigned => true, :null => false
      foreign_key :package_id, :packages, :null => false
      foreign_key :stemcell_id, :stemcells, :null => false
      unique [:package_id, :stemcell_id, :dependency_key]
      unique [:package_id, :stemcell_id, :build]
    end

    create_table :deployments do
      primary_key :id
      String :name, :null => false, :unique => true
      String :manifest, :null => true, :text => true
      foreign_key :release_id, :releases, :null => true
    end

    create_table :vms do
      primary_key :id
      String :agent_id, :null => false, :unique => true
      String :cid, :null => false
      foreign_key :deployment_id, :deployments, :null => false
    end

    create_table :instances do
      primary_key :id
      String :job, :null => false
      Integer :index, :unsigned => true, :null => false
      String :disk_cid, :unique => true, :null => true
      foreign_key :deployment_id, :deployments, :null => false
      foreign_key :vm_id, :vms, :unique => true, :null => true
    end

    create_table :tasks do
      primary_key :id
      String :state, :index => true, :null => false
      Time :timestamp, :index => true, :null => false
      String :description, :null => false
      String :result, :text => true, :null => true
      String :output, :null => true
    end

    create_table :users do
      primary_key :id
      String :username, :unique => true, :null => false
      String :password, :null => false
    end

    create_table :packages_release_versions do
      primary_key :id
      foreign_key :package_id, :packages, :null => false
      foreign_key :release_version_id, :release_versions, :null => false
      unique [:package_id, :release_version_id]
    end

    create_table :release_versions_templates do
      primary_key :id
      foreign_key :release_version_id, :release_versions, :null => false
      foreign_key :template_id, :templates, :null => false
      unique [:release_version_id, :template_id]
    end

    create_table :deployments_stemcells do
      primary_key :id
      foreign_key :deployment_id, :deployments, :null => false
      foreign_key :stemcell_id, :stemcells, :null => false
      unique [:deployment_id, :stemcell_id]
    end

  end
end