# dokumentasi Django 2.2.9.dev20191202104323

# FAQ: Basisdata dan model

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

Pastikan pengaturan `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` 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, 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.

## 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 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?

NoSQL databases are not officially supported by Django itself. There are, however, a number of side projects and forks which allow NoSQL functionality in Django.

You can take a look on the wiki page which discusses some projects.

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

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

    ALTER TABLE myapp_mytable ENGINE=MyISAM;