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

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

Pastikan pengaturan [`DEBUG`](/id/1.10/ref/settings/#std-setting-DEBUG) Django anda disetel ke `True`. Lalu, lakukan ini:

```
>>> 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` hanya tersedia jika [`DEBUG`](/id/1.10/ref/settings/#std-setting-DEBUG) adalah `True`. Itu adalah daftar dari kamus-kamus dalam rangka menjalankan permintaan. Setiap kamus mempunyai berikut:

```
``sql`` -- The raw SQL statement
``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.

Jika anda sedang menggunakan [multiple databases](/id/1.10/topics/db/multi-db/), anda dapat menggunakan antarmuka sama pada setiap anggota dari kamus `connections`:

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

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

```
from django.db import reset_queries
reset_queries()
```

## Dapatkah Saya menggunakan Django dengan basisdata sudah ada?

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

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

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

Jika anda tidak keberatan membersihkan data, alat `manage.py` proyek anda mempunyai pilihan [`flush`](/id/1.10/ref/django-admin/#django-admin-flush) untuk mengatur kembali basisdata ke keadaan nya dengan segera setelah [`migrate`](/id/1.10/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 bukan sebuah masalah dalam praktiknya, karena tidak ada yang menghentikan anda dari menambahkan pembatas (menggunakan pilihan model `unique_together` atau membuat pembatas secara langsung dalam basisdata anda), dan memaksa keunikan pada tingkatan itu. Primary-key kolom tunggal dibutuhkan untuk hal-hal seperti antarmuka admin untuk bekerja; sebagai contoh, anda butuh jalan mudah dari dapat menentukan sebuah obyek untuk disunting atau dihapus.

## Apakah Django mendukung basisdata NoSQL?

Basisdata NoSQL tidak secara resmi didukung oleh Django itu sendiri. Ada, bagaimanapun, sejumlah proyek samping dan cabang yang mengizinkan fungsi NoSQL di Django, seperti [Django non-rel](http://django-nonrel.org/).

Anda dapat juga melihat di [halaman wiki](https://code.djangoproject.com/wiki/NoSqlSupport) yang mengobrolkan beberapa alternatif.

## 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/1.10/ref/migration-operations/#django.db.migrations.operations.RunSQL) yang mengandung pernyataan `ALTER TABLE` yang melakukan apa anda ingin lakukan.

Sebagai contoh, jika anda sedang menggunakan MySQL dan ingin tabel anda menggunakan jenis tabel MyISAM, gunakan SQL berikut:

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