资讯专栏INFORMATION COLUMN

管理python程序的db schema

didikee / 3159人阅读

摘要:在维护一个采用框架的项目过程中,发现很多优点,这些都可以借鉴到程序中远程部署到指定环境本篇主要关注的是,在下一篇中将会介绍远程部署程序。主要使用和两个命令,下面的是运行在上。使用的来查看的具体信息运行下面的命令之后,上一步的命令将会回滚,即

本人是个Pythoner,曾经对ruby嗤之以鼻,但每种语言都有自己的擅长方向,不能一味的否定一门语言。在维护一个采用ruby on rails框架的项目过程中,发现rails很多优点,这些都可以借鉴到python程序中:

db schema migration

远程部署到指定环境

本篇主要关注的是 db schema migration,在下一篇中将会介绍远程部署python程序。
db migration主要使用rails和rake两个命令,下面的demo是运行在Mac OS上。

环境准备

git clone https://github.com/flying-bir...

cd python-db-schem; sudo gem install bundler

bundle install

Create Table 生成db文件,相当于sql文件

命令:

    ./bin/rails generate migration CreateJobTable

输出:

    db/migrate文件夹下面生成 {timestamp}_create_job_table.rb
在上步生成的文件中,写入具体的sql内容

采用如下格式:

class CreateJobTable < ActiveRecord::Migration
  def change
    create_table :d_job do |t|
          t.string :name
          t.string :path
          t.string :team
          t.references :pipeline
          t.string :function
          t.text :url
          t.integer :exclude,default:0
    end
    add_foreign_key :d_job, :d_pipeline, column: :pipeline_id
  end
end
Apply SQL File

命令:

./bin/rake db:migrate

运行上面的命令之后,将会在本地的db中创建出一个d_job表。
使用mysql的show create table来查看d_job的具体信息:

mysql> show create table d_job G
*************************** 1. row ***************************
       Table: d_job
Create Table: CREATE TABLE `d_job` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` text,
  `path` text,
  `team` text,
  `pipeline_id` int(11) DEFAULT NULL,
  `function` varchar(120) DEFAULT NULL,
  `exclude` int(11) DEFAULT "0",
  PRIMARY KEY (`id`),
  KEY `pipeline_id` (`pipeline_id`),
  CONSTRAINT `d_job_ibfk_1` FOREIGN KEY (`pipeline_id`) REFERENCES `d_pipeline` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=186 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Rollback

运行下面的命令之后,上一步的db命令将会回滚,即drop table d_job

./bin/rake db:rollback  STEP=1

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38565.html

相关文章

  • 远程部署python程序

    摘要:接着上一篇管理程序的本篇介绍远程部署到指定环境使用的技术是环境准备使用下面的命名获得模版,里面有准备好的各个以及基本包。将上面的的,和定制成你需要的参数就好。在上述命令运行成功之后,登录到上下目录结构,如下所示将部署到之后,到环境。 接着上一篇管理python程序的db schema, 本篇介绍远程部署到指定环境(prod or staging).使用的技术是Capistrano. 环...

    marser 评论0 收藏0
  • ⭐openGauss数据库源码解析系列文章—— DeepSQL⭐

    ❤️‍大家好,我是Gauss松鼠会,欢迎进来学习啦~❤️‍ 上一篇介绍了 8.6 AI查询时间预测的相关内容,本篇我们介绍8.7 DeepSQL、8.8 小结的相关精彩内容介绍。 8.7 DeepSQL 前面提到的功能均为AI4DB领域,AI与数据库结合还有另外一个大方向,即DB4AI。在本章中,我们将介绍openGauss的DB4AI能力,探索通过数据库来高效驱动AI任务的新途径。 使用场景 ...

    Atom 评论0 收藏0

发表评论

0条评论

didikee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<