99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Django4.0 模型和數(shù)據(jù)庫-表空間(Tablespaces)

2022-03-16 18:02 更新

為表格申明表空間

表空間可被指定給特定模型生成的數(shù)據(jù)表,通過在該模型的 ?class Meta? 中提供 ?db_tablespace選項。該選項也影響此模型中為 ManyToManyField 自動創(chuàng)建的數(shù)據(jù)表。
你可以用 ?DEFAULT_TABLESPACE ?配置為 ?db_tablespace ?指定一個默認值。這在配置內(nèi)置的 Django 應(yīng)用或其它你無法修改代碼的應(yīng)用的表空間時非常有用。

為索引申明表空間

你可以為 ?Index ?構(gòu)造器傳入 ?db_tablespace ?選項指定索引使用的表空間名。對于單個字段的索引,你可以向 ?Field ?構(gòu)造器傳入 ?db_tablespace ?選項,為字段列索引指定可選的表空間。若此列沒有索引,會忽略該選項。
你可以用 ?DEFAULT_INDEX_TABLESPACE ?配置項為 ?db_tablespace ?指定一個默認值。
若未指定 ?db_tablespace ?和 ?DEFAULT_INDEX_TABLESPACE?,索引會在與數(shù)據(jù)表相同的表空間中創(chuàng)建。

一個例子

class TablespaceExample(models.Model):
    name = models.CharField(max_length=30, db_index=True, db_tablespace="indexes")
    data = models.CharField(max_length=255, db_index=True)
    shortcut = models.CharField(max_length=7)
    edges = models.ManyToManyField(to="self", db_tablespace="indexes")

    class Meta:
        db_tablespace = "tables"
        indexes = [models.Index(fields=['shortcut'], db_tablespace='other_indexes')]

本例中, ?TablespaceExample ?模型(即模型表和多對多表)創(chuàng)建的表會被存在 ?tables ?表空間。名稱字段和多對多表的索引會被存在該 ?indexes ?表空間中。 ?data ?字段也會生成一個索引,但因為并未為其指定表空間,所以它會被默認存入模型的表空間 ?tables ?中。 ?shortcut ?字段的索引會被存入 ?other_indexes ?表空間。

數(shù)據(jù)庫支持

PostgreSQL 和 Oracle 支持表空間。而 SQLite, MariaDB 和 MySQL 不支持。

若你使用的后端不支持表空間,Django 會忽略所有與表空間相關(guān)的選項。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號