麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
697
2023-12-13
导读:本篇文章首席CTO笔记来给大家介绍有关django迁移之后数据库如何新建的相关内容,希望对大家有所帮助,一起来看看吧 django怎样自动创建数据库table;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 bookcatcher:mysite catcher$ python manage.py sqlmigrate books 0001BEGIN;
---- 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$
关于DJANGO连接数据库和创建模型问题创建数据库选择开始菜单中→程序→【Management *** 2008】→【*** Management Studio】命令,打开【*** Management Studio】窗口,并使用Windows或 ***身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。
django使用已有的数据库表怎么建立model在网上看到都是使用Django的models和makemigration,migrate命令来创建新表,并使用可是我的数据已经存在了已经创建好,并且已经存储有数据了,不能再重新创建新表了。
了解Django的表明和models名称的映射关系就可以让Django使用已经存在的表假如在Django存在models如下:[python] view plain copyfrom django.db import models
# Create your models here.class Sciencenews(models.Model):id = models.CharField(max_length=36,primary_key=True)
first_module = models.CharField(max_length=30,default="News")second_module = models.CharField(max_length=30,default="Latest News")
title = models.CharField(max_length=300)author = models.CharField(max_length=60,null=True)publish_date = models.CharField(max_length=35,null=True)
content = models.TextField(null=True)crawl_date = models.CharField(max_length=35,null=True)from_url = models.CharField(max_length=350,null=True)
执行数据迁移命令:[python] view plain copypython manage.py makemigrationpython manage.py migrate会在数据库中生成名称为show_sciencenews的数据表。
show为应用名称,此处我的应用名称为show可以看到Django创建表的命名规则:应用名_模型名我的存储爬取到的数据的表格名称原来为science_news,想要Django使用它,而不是创建新的表,只需要把的它的名称改为:应用名_要与该表映射的models名称,在此处我改为show_sciencenews。
然后使用如上的数据迁移命令,这时可能会提示数据表已经存在的错误,不用理会,models已经和数据表映射上了接下来只需要正常使用models和数据表就可以了django1.8更改了model后要怎样重建数据库
使用命令: py manage.py makemigrations py manage.py migrate结语:以上就是首席CTO笔记为大家整理的关于django迁移之后数据库如何新建的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django迁移之后数据库如何新建的相关内容别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。