Knex: Dukungan untuk mssql

Dibuat pada 10 Apr 2014  ·  53Komentar  ·  Sumber: knex/knex

Ingin tahu apakah ada rencana untuk mendukung MSSQL. Dapat memanfaatkan perpustakaan MSSQL seperti ini: " https://github.com/patriksimek/node-mssql ".

Saya akan dengan senang hati mengerjakan permintaan tarik untuk ini, tetapi saya mungkin memerlukan beberapa petunjuk tentang cara memulai.

feature request

Komentar yang paling membantu

mssql sudah didukung. menutup masalah.

Semua 53 komentar

Lihat juga #41

Masalah utama adalah bahwa ini akan menjadi sakit kepala besar untuk diuji/dipertahankan. Saya tidak memiliki akses yang mudah ke mesin Windows, apalagi lisensi untuk MS SQL. Anda akan menemukan hal-hal penting di https://github.com/tgriesser/knex/tree/master/clients/server

Senang membantu jika Anda mulai mengerjakannya. Juga senang untuk bertukar pikiran tentang cara menguji — mungkin meminta seseorang seperti Rackspace atau bahkan MS untuk mensponsori DB kecil.

@tybenz - Jadi saya telah mengerjakan refactor besar perpustakaan yang sebagian besar berfokus pada pemisahan dialek hal-hal tertentu dari perpustakaan, bersama dengan membuat berbagai komponen jauh lebih konsisten. Ini meletakkan dasar untuk pembuatan tampilan, kueri streaming, dukungan ddl yang lebih baik di sqlite3 dan memperbaiki hampir semua tiket yang beredar di repo.

Belum ada yang didorong, terutama karena tidak ada yang berfungsi dan saya terus memindahkan barang, itu hanya akan menjadi kebisingan dengan seberapa banyak saya berubah, tetapi segera setelah selesai (berharap untuk minggu depan atau lebih) seharusnya menjadi sangat jelas bagaimana mendukung mssql, websql, dll.

Setelah itu siap, saya akan melakukan ping kepada Anda dan kita semua dapat bertukar pikiran untuk memasukkannya ke sana, itu akan rapi untuk dimiliki, bahkan jika kita tidak memiliki tes apa pun segera (gunakan dengan kesepakatan jenis risiko Anda sendiri).

Luar biasa! Terima kasih @tgriesser. Simpan saja aku dalam lingkaran.

Hai @tybenz - 0,6 keluar, dan seharusnya cukup jelas cara menambahkannya (struktur dialeknya cukup konsisten)... beri tahu saya jika ini sesuatu yang ingin Anda ambil, saya hanya tidak punya pengalaman bekerja dengan mssql benar-benar tetapi saya ingin membantu di mana pun.

Luar biasa! Tidak yakin apakah saya akan punya waktu dalam waktu dekat, tetapi saya sudah benar-benar terbiasa mengandalkan Rak Buku/Knex dalam proyek saya saat ini. Kami sedang dipaksa untuk segera beralih ke mssql, jadi mungkin ini akan menjadi kebutuhan bagi tim saya dalam beberapa bulan ke depan. Jika tidak ada orang lain yang mengambilnya saat itu, saya senang untuk mencobanya.

Keren, saya mungkin mencoba membuatnya bekerja sebaik mungkin dan kemudian melakukan ping kepada Anda untuk melihat apakah Anda dapat menendang ban sedikit.

Halo semuanya,
Saya melihat sudah ada tes tentang mssql:
https://github.com/tgriesser/knex/blob/master/test/unit/schema/sqlserver.js
Tetapi saya tidak dapat menemukan kode sumber klien ...
Itu ada orang yang bekerja di atasnya?

Belum, kode tes itu sebenarnya tidak berfungsi, itu diadaptasi dari beberapa kode PHP. Saya belum mengerjakannya, tetapi saya dapat mencoba dan memeriksa dan membersihkan kode pengujian jika Anda ingin mencobanya.

@bendrucker Mendapatkan akses ke contoh MS SQL Server sebenarnya tidak terlalu sulit... Jika Anda tidak keberatan menjalankan Windows VM (atau bisa mendapatkan akses ke kotak Windows) mereka memiliki versi gratis yang tersedia: SQL Server Express . (ini memiliki beberapa batasan , tetapi harus berfungsi dengan baik sebagai testbed)

Jika Anda tidak ingin harus membuat VM Windows, ada juga Azure SQL Database , yang sebenarnya menjalankan versi khusus SQL Server. Ada paket dasar yang tersedia yang tidak memiliki biaya di muka, dan tampaknya hanya berharga $0,0067/jam. Juga, mungkin tidak ada salahnya untuk bertanya kepada MS apakah mereka akan menyumbangkan contoh Azure SQL Database dasar untuk pengujian.

Kami benar-benar membutuhkan seorang ahli yang bersedia menginvestasikan banyak waktu seperti yang dilakukan @vschoettke dengan Oracle. Mendukung semua DB utama akan sangat bagus, tetapi saya tidak melihat itu terjadi kecuali seseorang melangkah secara besar-besaran dengan a) kode atau pemeliharaan b) satu atau lebih perusahaan yang akan mensponsori.

ada pembaruan di mssql? Saya sedang membangun https://github.com/cnect/sails-mssql tanpa manfaat dari pembuat kueri MSSQL nyata untuk node.js. Akan senang menggunakan knex di bawah tenda.

Kami pada dasarnya membutuhkan seseorang untuk memimpin baik menulis dan memelihara fungsionalitas atau mensponsori itu. Jika tidak, ada banyak item dengan prioritas lebih tinggi dan Anda tidak boleh mengandalkan dukungan MS SQL.

Ya, mengerti. Saya sudah berinvestasi dalam adaptor layar mssql, tetapi saya ingin kembali ke implementasi knex setelah kebutuhan mendesak proyek saya terpenuhi.

Ya tentu saja, @tjwebb itu akan sangat bagus jika Anda dapat membantu dengan sesuatu seperti ini - Saya sedang memetakan banyak rencana tentang cara membersihkan banyak komposisi kueri sehingga seharusnya lebih mudah dalam menambahkan yang baru dialek, dll.

Juga akan keren jika kita entah bagaimana bisa mendapatkan knex sebagai dukungan untuk layar di beberapa titik, saya tahu dari tiket lain yang Anda cari untuk mewujudkannya - semoga setelah internal knex sedikit lebih modular, kita dapat menemukan sesuatu untuk membuat itu terjadi.

@tgriesser Kedengarannya bagus. Jika Anda menemukan dev yang disponsori untuk mssql
dukungan, beri tahu saya.

Pada Senin, 19 Januari 2015 pukul 13:07, Tim Griesser [email protected]
menulis:

Ya tentu saja, @tjwebb https://github.com/tjwebb itu akan sangat bagus jika
Anda dapat membantu dengan sesuatu seperti ini - saya sedang memetakan banyak
berencana untuk membersihkan banyak komposisi kueri sehingga seharusnya
jauh lebih mudah dalam menambahkan dialek baru, dll.

Juga akan keren jika kita entah bagaimana bisa mendapatkan knex sebagai dukungan untuk layar di
beberapa titik, saya tahu dari tiket lain yang Anda cari untuk membuatnya
kenyataan - semoga begitu internal knex sedikit lebih modular, kami
dapat menemukan sesuatu untuk mewujudkannya.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/tgriesser/knex/issues/240#issuecomment -70536317.

Hai!

Saya memulai implementasi mssql di https://github.com/tlsoftwares/knex , yang dapat dan ingin membantu akan sangat disambut!
Jika Anda memiliki panduan tentang cara melakukan pekerjaan ini akan sangat membantu.
Saya mulai mengintegrasikan dialek "mssql" kemungkinan pengujian dan saya sudah melakukan koneksi database menggunakan https://github.com/pekim/tedious.

@emanuelhp Terima kasih telah mengerjakan ini! Saya harus segera memeriksa garpu Anda. Namun, saya punya pertanyaan... apakah Anda akan menentang penggunaan https://www.npmjs.com/package/mssql alih-alih menggunakan yang membosankan secara langsung? Pustaka itu membungkus yang membosankan, klien Microsoft SQL Server resmi untuk Node , dan pustaka node-tds yang lebih lama, yang berarti akan mudah bagi pengguna untuk beralih antar driver. (terutama karena driver MS resmi harus mengungguli yang lain, tetapi tidak tersedia di Linux)

Juga, saat mencari perpustakaan mssql , saya menemukan adaptor MS SQL ini untuk knex , yang sepertinya sudah lama tidak disentuh... mungkin berguna untuk inspirasi.

Apakah ada kemajuan dalam hal ini? Apakah mungkin ada sesuatu yang kami (perusahaan tempat saya bekerja) dapat lakukan untuk membantu mewujudkannya? (kemungkinan besar secara finansial)

Saya pribadi menyukai Knex dan akan menyukai satu alur kerja daripada harus menulis penangan data terpisah untuk mssql. Tolong beri tahu saya apa yang bisa memotivasi kalian dan saya akan mencoba mewujudkannya!

@mderijcke Hm. Saya belum pernah menggunakan Bountysource sebelumnya, tetapi bagi saya sepertinya Anda dapat menambahkan hadiah untuk masalah ini. Jika Anda perlu menyelesaikannya dalam jangka waktu tertentu, Anda mungkin lebih baik bertanya kepada kontributor tetap apakah mereka tertarik dengan pekerjaan itu dan mempekerjakan mereka secara langsung. Semoga beruntung.

Saya memiliki 0 pengalaman dengan mssql, tetapi saya akan mengatur akun pengguna untuk database pengujian. Salah satu admin sistem di perusahaan tempat saya bekerja saat ini tampaknya memiliki pengalaman mssql.

Saya menyiapkan mesin virtual dengan Windows Server 2012 R2 dan Microsoft SQL Server 2014. Siapa pun yang tertarik dengan testbed mssql dapat menghubungi saya atau menandai saya dalam masalah ini.

@tgriesser - Beri tahu saya jika Anda tertarik dengan tempat pengujian permanen untuk mssql. Jika Anda dapat menggunakan bantuan secara finansial maka kami mungkin dapat menawarkan bantuan kepada Anda. Tolong beri tahu saya apa sikap Anda tentang masalah ini (kemajuan, apa yang tersisa untuk dilakukan, waktu yang tersedia, motivasi, dll)

Sayangnya perusahaan saya direstrukturisasi dan saya tidak dapat mengerjakannya untuk sementara waktu ...

bagaimana dukungan ms sql? apakah ada paket yang berbeda untuk digunakan? atau ini yang benar?

saya mencoba untuk memperpanjang
http://meteor-postgres.readthedocs.org/en/latest/
tetapi menggunakan ms sql daripada postgres

Saya tidak memiliki banyak pengalaman dengan mssql, tetapi saya tetap menemukan cara membuat adaptor Waterline untuknya: https://github.com/cnect/sails-sqlserver. @JohnHanks mungkin API adaptor untuk Waterline dan Meteor cukup mirip sehingga Anda bisa mengadaptasi beberapa kode?

Saya juga tidak tahu banyak tentang sistem adaptor database meteor baru ini. Singkatnya: Saya tidak tahu banyak :)

Saya mendapat contoh aplikasi yang bekerja dengan Knexjs untuk menjembatani Postgres ke Meteor's Minimongo.

Adakah yang tahu sejauh mana pekerjaan yang diperlukan untuk mem-port Knexjs ke MSSQL? Kami berpikir untuk melakukannya sendiri. Jika kami dapat menunjukkan titik perubahan dalam kode untuk membuatnya bekerja dengan DB apa pun, mungkin kami dapat menyelidiki dan jika kami mengembangkan versi Knex untuk MS SQL kami sendiri, maka kami dapat mengeluarkan permintaan tarik :octocat: :smile:

Namun orang lain yang tertarik dengan dukungan MSSQL.

Saya tertarik dengan port MS SQL, dan dengan senang hati akan membantu dalam pengembangannya. Saya akan mencoba untuk mengikuti diskusi, tetapi jika Anda pernah merasa seperti Anda kekurangan sepasang tangan, hubungi saya!

Apakah ada pekerjaan yang dilakukan pada ini sama sekali? Saya akan senang bila memiliki ini.

Apakah ada pekerjaan yang dilakukan pada ini sama sekali?

@bendrucker?

Ada pembaruan?

Hanya ingin memberi tahu Anda bahwa saya sedang membangun penyedia mssql, menghabiskan hari ini untuk mengerjakannya. mungkin akan segera selesai. akan memposting dan memasukkan permintaan tarik.

@tybenz ini masih merupakan fitur yang saya asumsikan.

@Grimace1975

Senang mendengarnya. Ini adalah salah satu permintaan kami yang paling rutin. Tolong beri tahu kami. :+1:

@Grimace1975 Apakah berjalan dengan baik?

Saya juga meluangkan waktu untuk mengembangkan SQL Server dan yang menghentikan saya adalah bagaimana Transaksi diatur dalam kode sumber knex dan bagaimana Transaksi ditangani di driver node mssql.

@JoaoCnh ya sudah beberapa hari, lebih lama dari yang saya kira. semuanya selesai, semua tes lulus, kecuali untuk transaksi, dan migrasi bekerja pada ini sekarang.

@Grimace1975 bagus! Tolong beri tahu kami jika Anda telah mencapai kemajuan Transaksi

@JoaoCnh Saya baru saja selesai dan semuanya berfungsi.

@rhys-vdw saya akan mengajukan permintaan tarik. Namun saya perhatikan ketika menjalankan babel, bahwa file lib lain ditimpa di folder lib dan berbeda dari src. Apakah orang-orang telah membuat perubahan di lib secara langsung?

Saya menemukan masalah potensial dengan implementasi mssql Anda @Grimace1975. Saya mulai menggunakannya kemarin dan menemukan bahwa output limit/offset Anda didasarkan pada pemikiran mssql 2008. Saya tidak yakin apakah ini yang Anda inginkan, tetapi di mssql 2012 ada offset & fetch. Saya harus membuat cabang saya sendiri yang menanganinya di sini: https://github.com/mbrio/knex. Jika pengujian diatur terhadap server mssql 2012 dan Anda menggunakan limit dan offset bersama-sama, kesalahan akan terjadi karena top dan offset tidak dapat digunakan bersama-sama.

@mbrio ya saya mencoba mendukung mssql sebelum 2012 karena 2012 tidak banyak digunakan. Top didukung di semua platform. Batas dan offset hanya berfungsi saat digunakan dengan pesanan oleh.

Mungkin sebagai kompromi adalah batas penggunaan teratas dan offset ketika keduanya digunakan, jika tidak kembali menggunakan top.

Terima kasih telah menemukan ini.

@mbrio ,
Apakah Anda keberatan mencoba master terbaru. Saya telah mendorong perbaikan. dan ujian tampaknya berlalu.

Saat menggunakan batas, saya sekarang mendapatkan:

Unhandled rejection RequestError: select top <strong i="6">@p0</strong> * from [table] where [search1] = <strong i="7">@p1</strong> and [search2] = <strong i="8">@p2</strong> order by [field1] desc - Incorrect syntax near '<strong i="9">@p0</strong>'.

ini dengan:

    .select()
    .from('table')
    .where(search)
    .limit(10)
    .orderBy('field1', 'desc')
    .then(function (records) {
      res.json(records);
    });

@blitzd

saya menghapus parens atas (?). melakukan pekerjaan ini sebelum menarik lagi.

tes integrasi bawaan melakukan tindakan ini. sehingga lulus secara lokal.

coba perbarui file testknexfile.js untuk mssql
atur Debug=mssql
tes npm

atau yang setara di platform Anda

@Grimace1975

Kesalahan tampaknya menunjukkan bahwa itu melewati batas (X) sebagai parameter, dan saya rasa Anda tidak dapat melakukannya dengan SQL Server, parens atau tidak.

DECLARE <strong i="8">@Top</strong> INT = 2

SELECT TOP <strong i="9">@Top</strong> * FROM sys.tables -- Not valid

SELECT TOP (@Top) * FROM sys.tables -- Not valid

SELECT TOP 2 * FROM sys.tables -- Valid

Saya sebelumnya telah meretas sedikit dukungan mssql ke knex dan telah menerapkan batas menggunakan yang berikut (ini hanya mish-mash yang dipinjam dari penyedia lain dengan sedikit modifikasi untuk mendukung top/limit):

  select: function select() {
    var statements = _.map(components, function (component) {
      return this[component]();
    }, this);
    var query = _.compact(statements).join(' ');
    return this._addQueryLimit(query);
  },

  limit: function limit() {
    var noLimit = !this.single.limit && this.single.limit !== 0;
    if (noLimit && !this.single.offset) return '';

    // Workaround for offset only,
    // see http://stackoverflow.com/questions/10491492/sqllite-with-skip-offset-only-not-limit
    return 'limit ' + this.formatter.parameter(noLimit ? -1 : this.single.limit);
  },

  _addQueryLimit: function _addQueryLimit(query) {
    var limit = this.single.limit;
    var hasLimit = limit || limit === 0 || limit === '0';
    limit = +limit;

    if (!hasLimit) return query;
    query = query || "";
    if(hasLimit) {
      return query.replace('select', 'select top ' + limit);
    }
  }

Ini mungkin melewati bit pembangun kueri dari tes unit seperti ketika saya melihat melalui mereka yang sepertinya tidak dibuat sama seperti ketika mereka dieksekusi di SQL Server. Yaitu,. anda bisa berakhir dengan SELECT TOP 2 dalam output pembuatan kueri Anda - tetapi pada SQL Server itu lewat yang dibungkus dengan panggilan execute_sql di mana parameternya dipisahkan secara terpisah (dan kemudian itu tidak valid).

Semoga itu masuk akal!

@blitzd tes diuji dan kesalahan. sudah saya koreksi. mendorong lagi.

ini bekerja dengan (?) seperti sebelumnya.

Deklarasikan @pernyataan nvarchar(50) = 'pilih atas (@p0) * Dari Akun';
Deklarasikan @params nvarchar(50) = ' @p0 int';
Exec sp_executesql @pernyataan , @params , 2;

@Grimace1975 dapat mengonfirmasi bahwa itu memang berfungsi seperti sebelumnya! Terima kasih!

Saya memiliki knex dari master dengan dialek mssql. Mencoba memigrasikan tabel sederhana dan mendapatkan

TypeError: expecting an array, a promise or a thenable

saat melakukan migrasi knex

Apa yang terjadi? Ada yang sadar akan hal ini?

@JoaoCnh Punya jejak tumpukan?

Kirim setel variabel lingkungan BLUEBIRD_DEBUG=1 untuk mendapatkan pelacakan tumpukan janji yang ditingkatkan.

Saya telah melihat bahwa dukungan MSSQL telah digabungkan menjadi master. Ada alasan kenapa ini masih buka?

@denisw Apakah ini berarti MSSQL sekarang menjadi DB yang didukung?
Itu tidak tercantum dalam README.md "Pembuat kueri yang menyertakan baterai, multi-dialek (MySQL, PostgreSQL, SQLite3, WebSQL, Oracle) untuk Node.js dan...". Ini adalah penghalang jalan tunggal yang mencegah implementasi knex. Terima kasih!

Ada pembaruan tentang ini? Kami menggunakan KNex tempat saya bekerja, dan ingin menambahkan dukungan untuk MS SQL.

andrew,

Semuanya harus lengkap. Apa yang Anda temukan kurang?

@tgriesser Saya tidak percaya build baru telah dirilis, dan konten web masih tidak menunjukkan Dukungan MS SQL.

Dari: Andrew Faulkner [mailto:[email protected]]
Dikirim: Jumat, 26 Februari 2016 16:42
Kepada: tgriesser/knex [email protected]
Cc: Sky Morey [email protected]
Perihal: Re: [knex] Dukungan untuk mssql (#240)

Ada pembaruan tentang ini? Kami menggunakan KNex tempat saya bekerja, dan ingin menambahkan dukungan untuk MS SQL.


Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/tgriesser/knex/issues/240#issuecomment -189513622.

@cexafaulkner , @Grimace1975 : Ini sebenarnya dirilis sebagai bagian dari v0.10.0, seperti yang ditunjukkan di changelog di situs ; namun, Anda benar bahwa dokumentasi belum diperbarui untuk mencerminkan hal ini. Saya yakin PR akan diterima untuk memperbaiki ini ;-)

Saya menambahkan PR untuk mendukung tampilan contoh MSSQL di dokumen, #1246 .

mssql sudah didukung. menutup masalah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

ghost picture ghost  ·  3Komentar

rarkins picture rarkins  ·  3Komentar

nklhrstv picture nklhrstv  ·  3Komentar

aj0strow picture aj0strow  ·  3Komentar

mtom55 picture mtom55  ·  3Komentar