django怎样自动创建数据库table

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django怎样自动创建数据库table相关的知识,希望对你有一定的参考价值。

参考技术A  

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$
   
 
catcher:mysite catcher$ sudo python manage.py migratePassword:Operations to perform:  Apply all migrations: admin, contenttypes, books, auth, sessionsRunning migrations:  Rendering model states... DONE  Applying contenttypes.0001_initial... OK  Applying auth.0001_initial... OK  Applying admin.0001_initial... OK  Applying admin.0002_logentry_remove_auto_add... OK  Applying contenttypes.0002_remove_content_type_name... OK  Applying auth.0002_alter_permission_name_max_length... OK  Applying auth.0003_alter_user_email_max_length... OK  Applying auth.0004_alter_user_username_opts... OK  Applying auth.0005_alter_user_last_login_null... OK  Applying auth.0006_require_contenttypes_0002... OK  Applying auth.0007_alter_validators_add_error_messages... OK  Applying books.0001_initial... OK  Applying sessions.0001_initial... OKcatcher:mysite catcher$

参考技术B 定义好models类后,在工程目录cmd 运行python manager.py sycndb

django1.8更改了model后要怎样重建数据库

参考技术A 使用命令: py manage.py makemigrations py manage.py migrate

以上是关于django怎样自动创建数据库table的主要内容,如果未能解决你的问题,请参考以下文章

怎样实现每天自动执行oracle的存储过程一次

怎样实现每天自动执行oracle的存储过程一次?

Django:我无法让 Django 自动创建自动字段

为 django 模型自动创建数据的工具 [关闭]

怎样根据数据库里的数据自动生成Table

如何使用 django 自动创建 uuid 列