---
title: "FAQ: Basisdata dan model"
version: 5.0
locale: id
source: https://docs.djangoproject.com/id/5.0/faq/models/
canonical: https://djangodocs.dev/id/5.0/faq/models/
---
# FAQ: Basisdata dan model

## Bagaimana dapat Saya melihat permintaan SQL mentah sedang berjalan?

Make sure your Django [`DEBUG`](/id/5.0/ref/settings/#std-setting-DEBUG) setting is set to `True`.
Then do this:

```pycon
>>> from django.db import connection
>>> connection.queries
[{'sql': 'SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls',
'time': '0.002'}]
```

`connection.queries` is only available if [`DEBUG`](/id/5.0/ref/settings/#std-setting-DEBUG) is `True`.
It's a list of dictionaries in order of query execution. Each dictionary has
the following:

- `sql` \- Pernyataan SQL mentah
- `time` \- How long the statement took to execute, in seconds.

`connection.queries` termasuk semua pernyataan SQL -- INSERTs, UPDATES, SELECT, dll. Setiap kali aplikasi anda mengenai basisdata, permintaan akan direkam.

If you are using [multiple databases](/id/5.0/topics/db/multi-db/), you can use the
same interface on each member of the `connections` dictionary:

```pycon
>>> from django.db import connections
>>> connections["my_db_alias"].queries
```

Jika anda butuh membersihkan daftar permintaan secara manual pada titik apapun dalam fungsi anda, panggil `reset_queries()`, seperti ini:

```
from django.db import reset_queries

reset_queries()
```

## Bisakah saya menggunakan Django dengan basisdata yang sudah ada sebelumnya?

Ya. Lihat [memadukan dengan warisan basisdata](/id/5.0/howto/legacy-databases/).

## Jika Saya membuat perubahan pada model, bagaimana Saya memperbaharui basisdata?

Lihatlah pada dukungan Django untuk [`schema migrations`](/id/5.0/topics/migrations/#module-django.db.migrations).

Jika anda tidak keberatan membersihkan data, kegunaan `manage.py` proyek anda mempunyai pilihan [`flush`](/id/5.0/ref/django-admin/#django-admin-flush) untuk mengatur kembali basisdata ke keadaan nya dengan segera setelah [`migrate`](/id/5.0/ref/django-admin/#django-admin-migrate) dijalankan.

## Apakah model Django mendukung primary key banyak kolom?

Tidak. Hanya primary key kolom-tunggal yang didukung.

Tetapi ini bukanlah sebuah masalah dalam praktik, karena tidak ada yang menghentikan anda dari menambahkan batasan lain (menggunakan pilihan model `unique_together` atau membuat batasan langsung dalam basisdata anda), dan memaksa keunikan pada tingkatan itu. Primary key kolom-tunggal dibutuhkan untuk hal-hal seperti antarmuka admin untuk bekerja; yaitu anda butuh nilai tunggal untuk menentukan sebuah objek untuk menyunting atau menghapus.

## Apakah Django mendukung basisdata NoSQL?

Basisdata NoSQL tidak secara resmi didukung oleh Django. Ada, bagaimanapun, sejumlah proyek sampingan dan turunan yang mengizinkan penggunaan NoSQL dalam Django.

Anda dapat melihat pada [the wiki page](https://code.djangoproject.com/wiki/NoSqlSupport) yang mengobrolkan beberapa proyek.

## Bagaimana Saya menambah pilihan khusus-basisdata ke pernyataan CREATE TABLE saya, seperti menentukan MyISAM sebagai jenis tabel?

Kami mencoba menghidnari menambahkan kasus khusus di kode Django untuk menampung semua pilihan basisdata-khusus seperti jenis tabel, dll. Jika anda ingin menggunakan salah satu pilihan ini, buat perpindahan dengan operasi [`RunSQL`](/id/5.0/ref/migration-operations/#django.db.migrations.operations.RunSQL) yang mengandung pernyataan `ALTER TABLE` yang melakukan apa anda ingin lakukan.

For example, if you're using MySQL and want your tables to use the MyISAM table
type, use the following SQL:

```sql
ALTER TABLE myapp_mytable ENGINE=MyISAM;
```
