# Dokumentasi Django 4.2.9.dev20231204082947

# FAQ: Basisdata dan model

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

Make sure your Django `DEBUG` setting is set to `True`. Then do this:

    >>> 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` 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, you can use the same interface on each member of the `connections` dictionary:

    >>> 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.

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

Lihatlah pada dukungan Django untuk `schema migrations`.

Jika anda tidak keberatan membersihkan data, kegunaan `manage.py` proyek anda mempunyai pilihan `flush` untuk mengatur kembali basisdata ke keadaan nya dengan segera setelah `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 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` 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:

    ALTER TABLE myapp_mytable ENGINE=MyISAM;