django创建数据库表方法

catcher:mysite catcher$ python manage.py makemigrations books
Migrations for ‘books‘:
  0001_initial.py:
    - Create model Author
    - Create model Book
    - Create model Publisher
    - Add field publisher to book
catcher:mysite catcher$ python manage.py sqlmigrate books 0001
BEGIN;
--
-- Create model Author
--
CREATE TABLE "books_author" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "first_name" varchar(30) NOT NULL, "last_name" varchar(40) NOT NULL, "email" varchar(254) NOT NULL);
--
-- Create model Book
--
CREATE TABLE "books_book" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(100) NOT NULL, "publication_date" date NOT NULL);
CREATE TABLE "books_book_authors" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "book_id" integer NOT NULL REFERENCES "books_book" ("id"), "author_id" integer NOT NULL REFERENCES "books_author" ("id"));
--
-- Create model Publisher
--
CREATE TABLE "books_publisher" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(30) NOT NULL, "address" varchar(50) NOT NULL, "city" varchar(60) NOT NULL, "state_province" varchar(30) NOT NULL, "country" varchar(50) NOT NULL, "website" varchar(200) NOT NULL);
--
-- Add field publisher to book
--
ALTER TABLE "books_book" RENAME TO "books_book__old";
CREATE TABLE "books_book" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(100) NOT NULL, "publication_date" date NOT NULL, "publisher_id" integer NOT NULL REFERENCES "books_publisher" ("id"));
INSERT INTO "books_book" ("publication_date", "publisher_id", "id", "title") SELECT "publication_date", NULL, "id", "title" FROM "books_book__old";
DROP TABLE "books_book__old";
CREATE INDEX "books_book_2604cbea" ON "books_book" ("publisher_id");

COMMIT;
catcher:mysite catcher$
时间: 2024-11-06 07:17:34

django创建数据库表方法的相关文章

django使用model创建数据库表使用的字段

Django通过model层不可以创建数据库,但可以创建数据库表,以下是创建表的字段以及表字段的参数.一.字段1.models.AutoField 自增列= int(11) 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True.2.models.CharField 字符串字段 必须 max_length 参数3.models.BooleanField 布尔类型=tinyint(1) 不能为空,Blank=True4.

iOS学习之sqlite的创建数据库,表,插入查看数据

目录(?)[-] 新建项目sqliteDemo添加使用sqlite的库libsqlite3dylib sqlite 的方法 获取沙盒目录并创建或打开数据库 创建数据表 插入数据 查询数据库并打印数据 iOS sqlite数据库操作.步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1.新建项目sqliteDemo,添加使用sqlite的库libsqlite3.dylib 2.sqlite 的方法 sqlite3  

基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表

本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创建数据库>,本文继续探索关于Shell和MySQL的结合使用,我不知道当一个数据库设计完成之后如何快速的创建设计好的数据库表和添加相应基本数据,我目前知道的就是使用Shell和SQL脚本来达到我的目的--快速的.多次的.可重复利用的创建数据库表. 创建一个数据库表的SQL脚本: /***********

创建数据库的方法

创建数据库有3中方法: 一.使用oracle的oracle university installer创建数据库 二.数据库配置助手 oracle database configuration assistant创建数据库.使用配置助手可以完成以下工作: 1.创建一个数据库 2.设置数据库的选项 3.删除一个数据库 4.管理模板 1)利用预定义的模板设置来创建新模板 2)从一个现存的数据库来创建新模板 3)删除数据库模板 5.使用数据库助手来创建数据库的步骤如下: 1)选择创建数据库的选项 2)指

hibernate动态创建数据库表名几种方式

数据库中数据量很大, 但又不可以删除时同时又要优化程序检索数据时间. 答:方式有很多比如 创建数据库表分区,创建索引, 存储过程等; 我这里采用动态创建数据库表的方式. 完全可以在不创建表分区情况下实行分表管理 例如 日志记录表 将日期(yyyy-MM)作为默认表后缀动态追加, 例如 文章发布表 将用户名作为后缀名进行动态追加 ; 动态创建数据库表的方式要具体问题具体分析, 比如JDBC中直接使用create table 表名_dynamicStr(...); 文章发布系统 dynamicStr

使用sqlite3创建数据库表的时候需要注意

使用sqlite3创建数据库表的时候需要注意: 1. 不能使用纯数字 2. 不能带有"-","@"等字符.也不能以数字打头. 一.下面是log打出来的信息: DB Error: 1 "unrecognized token: "47464636265757265763393573649"" DB Query: INSERT INTO 47464636265757265763393573649(role,number,name)

使用sqlite3创建数据库表的时候须要注意

使用sqlite3创建数据库表的时候须要注意: 1. 不能使用纯数字 2. 不能带有"-","@"等字符.也不能以数字打头. 一.以下是log打出来的信息: DB Error: 1 "unrecognized token: "47464636265757265763393573649"" DB Query: INSERT INTO 47464636265757265763393573649(role,number,name)

创建数据库表就是这么简单

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/.网站上有对应每一小节的在线练习大家可以去试试.更多课程请参考网站. 创建数据库 我们先创建一个属于自己的数据库,如下: create database test; 至于这句话表示什么意思,又有什么固定的语法,我们后面介绍. 创建数据库表 创建了数据库,接下来我们创建一个表,我们的数据操作都是针对表来的,例如: cre

django 删除数据库表后重新同步的方法

python manage.py sqlmigrate your_app_name 0001 把your_app_name换成自己的app名字即可看到框架自动生成的创建表sql语句,于是我就这样看到了sql语句.我直接在数据库中执行了该句sql命令手动创建了表,再启动应用,可以正常启动,问题解决. 虽然这个方法有些取巧吧,似乎还是没有解释问题的症结所在,但好在很实用地解决了问题. 原文地址:https://www.cnblogs.com/feiyueNotes/p/11007029.html