คำถามติดแท็ก sequelize.js

ไลบรารี Sequelize จัดเตรียม ORM (Object-Relational-Mapper) สำหรับ Node.js ซึ่งเขียนด้วย JavaScript ทั้งหมด ให้การแมปที่ง่ายสำหรับ MySQL, MariaDB, SQLite, PostgreSQL และ SQL Server

8
ป้องกัน Sequelize ไม่ให้ส่งออก SQL ไปยังคอนโซลเมื่อเรียกใช้คิวรี?
ฉันมีฟังก์ชั่นเพื่อเรียกคืนโปรไฟล์ของผู้ใช้ app.get('/api/user/profile', function (request, response) { // Create the default error container var error = new Error(); var User = db.User; User.find({ where: { emailAddress: request.user.username} }).then(function(user) { if(!user) { error.status = 500; error.message = "ERROR_INVALID_USER"; error.code = 301; return next(error); } // Build the profile from the user object …

11
Sequelize.js: วิธีใช้การย้ายข้อมูลและการซิงค์
ฉันใกล้จะมีโครงการของฉันพร้อมที่จะเปิดตัวแล้ว ฉันมีแผนใหญ่สำหรับหลังการเปิดตัวและโครงสร้างฐานข้อมูลกำลังจะเปลี่ยนไป - คอลัมน์ใหม่ในตารางที่มีอยู่รวมถึงตารางใหม่และการเชื่อมโยงใหม่กับโมเดลที่มีอยู่และแบบใหม่ ฉันยังไม่ได้แตะการย้ายข้อมูลใน Sequelize เนื่องจากฉันมีเพียงการทดสอบข้อมูลซึ่งฉันไม่คิดจะลบทุกครั้งที่ฐานข้อมูลเปลี่ยนแปลง ด้วยเหตุนี้ในตอนนี้ฉันกำลังทำงานsync force: trueเมื่อแอปของฉันเริ่มทำงานหากฉันเปลี่ยนข้อกำหนดของโมเดล การดำเนินการนี้จะลบตารางทั้งหมดและสร้างขึ้นใหม่ตั้งแต่ต้น ฉันสามารถละเว้นforceตัวเลือกเพื่อให้สร้างตารางใหม่เท่านั้น แต่ถ้าสิ่งที่มีอยู่มีการเปลี่ยนแปลงสิ่งนี้ก็ไม่มีประโยชน์ เมื่อฉันเพิ่มในการโยกย้ายสิ่งต่างๆทำงานอย่างไร เห็นได้ชัดว่าฉันไม่ต้องการให้ตารางที่มีอยู่ (ที่มีข้อมูลอยู่ในนั้น) ถูกลบออกดังนั้นจึงsync force: trueไม่ต้องสงสัยเลย ในแอปอื่น ๆ ที่ฉันได้ช่วยพัฒนา (Laravel และเฟรมเวิร์กอื่น ๆ ) ซึ่งเป็นส่วนหนึ่งของขั้นตอนการปรับใช้ของแอปเราเรียกใช้คำสั่งโยกย้ายเพื่อเรียกใช้การย้ายข้อมูลที่รอดำเนินการ แต่ในแอปเหล่านี้การย้ายข้อมูลครั้งแรกจะมีฐานข้อมูลโครงกระดูกโดยฐานข้อมูลอยู่ในสถานะที่เป็นช่วงต้นของการพัฒนาไม่ว่าจะเป็นรุ่นอัลฟ่ารุ่นแรกหรืออะไรก็ตาม ดังนั้นแม้แต่อินสแตนซ์ของแอปที่ไปปาร์ตี้ช้าก็สามารถเร่งความเร็วได้ในคราวเดียวโดยเรียกใช้การย้ายข้อมูลทั้งหมดตามลำดับ ฉันจะสร้าง "การย้ายครั้งแรก" ใน Sequelize ได้อย่างไร หากฉันไม่มีอินสแตนซ์ใหม่ของแอปในทางที่ผิดจะไม่มีฐานข้อมูลโครงกระดูกให้เรียกใช้การย้ายข้อมูลหรือจะเรียกใช้การซิงค์เมื่อเริ่มต้นและจะทำให้ฐานข้อมูลอยู่ในสถานะใหม่ทั้งหมด ตารางใหม่เป็นต้น แต่เมื่อพยายามเรียกใช้การย้ายข้อมูลพวกเขาจะไม่สมเหตุสมผลเนื่องจากถูกเขียนด้วยฐานข้อมูลดั้งเดิมและการทำซ้ำแต่ละครั้งจะอยู่ในใจ กระบวนการคิดของฉัน: ในทุกขั้นตอนฐานข้อมูลเริ่มต้นบวกกับการโยกย้ายแต่ละครั้งตามลำดับควรเท่ากับ (บวกหรือลบข้อมูล) ฐานข้อมูลที่สร้างขึ้นเมื่อ sync force: trueกำลังทำงานอยู่ เนื่องจากคำอธิบายแบบจำลองในรหัสอธิบายโครงสร้างฐานข้อมูล ดังนั้นบางทีถ้าไม่มีตารางการย้ายข้อมูลเราก็แค่เรียกใช้การซิงค์และทำเครื่องหมายการย้ายข้อมูลทั้งหมดว่าเสร็จสิ้นแม้ว่าจะไม่ได้ทำงานก็ตาม นี่คือสิ่งที่ฉันต้องทำ (อย่างไร) หรือ Sequelize …

10
จะจัดระเบียบแอปโหนดที่ใช้ sequelize ได้อย่างไร?
ฉันกำลังมองหาแอป nodejs ตัวอย่างที่ใช้ ORM ต่อเนื่อง ข้อกังวลหลักของฉันคือดูเหมือนว่าจะเป็นไปไม่ได้ที่จะกำหนดโมเดลของคุณในไฟล์ js แยกกันหากโมเดลเหล่านั้นมีความสัมพันธ์ที่ซับซ้อนซึ่งกันและกันเนื่องจากต้องใช้ลูปการพึ่งพา () อาจมีคนกำหนดโมเดลทั้งหมดในไฟล์เดียวที่ยาวมาก? ฉันสนใจเป็นหลักว่าโมเดลถูกกำหนดและใช้งานผ่านแอพอย่างไร ฉันต้องการให้มีการตรวจสอบความถูกต้องว่าสิ่งที่ฉันทำด้วยตัวเองเป็นวิธีที่ "ดี" ในการทำสิ่งต่างๆ

13
จะอัปเดตระเบียนโดยใช้ sequelize สำหรับโหนดได้อย่างไร
ฉันกำลังสร้าง RESTful API ด้วย NodeJS, express, express-resource และ Sequelize ที่ใช้จัดการชุดข้อมูลที่เก็บไว้ในฐานข้อมูล MySQL ฉันกำลังพยายามหาวิธีอัปเดตระเบียนอย่างถูกต้องโดยใช้ Sequelize ฉันสร้างแบบจำลอง: module.exports = function (sequelize, DataTypes) { return sequelize.define('Locale', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, locale: { type: DataTypes.STRING, allowNull: false, unique: true, validate: { len: 2 } }, visible: { type: DataTypes.BOOLEAN, …

3
วิธีสร้าง Sequelize ให้ใช้ชื่อตารางเอกพจน์
ฉันมีโมเดลที่เรียกว่า User แต่ Sequelize จะค้นหา USERS ตารางเมื่อใดก็ตามที่ฉันพยายามบันทึกใน DB ใครทราบวิธีตั้งค่า Sequelize ให้ใช้ชื่อตารางเอกพจน์ ขอบคุณ.

4
วิธีสร้างแบบสอบถามเข้าร่วมโดยใช้ Sequelize บน Node.js
ฉันใช้ ORM ภาคต่อ; ทุกอย่างดีและสะอาด แต่ฉันมีปัญหาเมื่อใช้กับjoinแบบสอบถาม ฉันมีสองรุ่น: ผู้ใช้และโพสต์ var User = db.seq.define('User',{ username: { type: db.Sequelize.STRING}, email: { type: db.Sequelize.STRING}, password: { type: db.Sequelize.STRING}, sex : { type: db.Sequelize.INTEGER}, day_birth: { type: db.Sequelize.INTEGER}, month_birth: { type: db.Sequelize.INTEGER}, year_birth: { type: db.Sequelize.INTEGER} }); User.sync().success(function(){ console.log("table created") }).error(function(error){ console.log(err); }) var Post = …

6
เรียงลำดับคอลัมน์ที่ไม่รู้จัก '* .createdAt' ใน 'รายการฟิลด์'
ฉันได้รับคอลัมน์ที่ไม่รู้จัก 'userDetails.createdAt' ใน 'รายการฟิลด์' เมื่อพยายามดึงข้อมูลด้วยการเชื่อมโยง การใช้findAllโดยไม่มีการเชื่อมโยงทำงานได้ดี รหัสของฉันมีดังนี้: var userDetails = sequelize.define('userDetails', { userId :Sequelize.INTEGER, firstName : Sequelize.STRING, lastName : Sequelize.STRING, birthday : Sequelize.DATE }); var user = sequelize.define('user', { email: Sequelize.STRING, password: Sequelize.STRING }); user.hasOne(userDetails, {foreignKey: 'userId'}); user.findAll({include: [userDetails] }).success(function(user) { console.log(user) });

10
Sequelize.js ลบแบบสอบถาม?
มีวิธีเขียนข้อความค้นหา delete / deleteAll เช่น findAll หรือไม่? ตัวอย่างเช่นฉันต้องการทำสิ่งนี้ (สมมติว่า MyModel เป็นโมเดล Sequelize ... ): MyModel.deleteAll({ where: ['some_field != ?', something] }) .on('success', function() { /* ... */ });

4
ฉันจะดู SQL ที่สร้างโดย Sequelize.js ได้อย่างไร
ฉันต้องการดูคำสั่ง SQL ที่ส่งไปยังเซิร์ฟเวอร์ PostgreSQL เพราะฉันต้องการตรวจสอบว่าถูกต้องหรือไม่ โดยเฉพาะอย่างยิ่งฉันสนใจคำสั่งสร้างตาราง ตัวอย่างเช่น ActiveRecord (Ruby) พิมพ์คำสั่ง SQL ไปยังเอาต์พุตมาตรฐาน เป็นไปได้กับ Node.js / ActionHero.js และ Sequelize.js ด้วยหรือไม่?

9
จัดลำดับแปลงเอนทิตีเป็นวัตถุธรรมดา
ฉันไม่ค่อยคุ้นเคยกับจาวาสคริปต์และน่าทึ่งมากเพราะฉันไม่สามารถเพิ่มคุณสมบัติใหม่ให้กับวัตถุที่ดึงมาจากฐานข้อมูลโดยใช้ชื่อ ORM Sequelize.js เพื่อหลีกเลี่ยงสิ่งนี้ฉันใช้แฮ็คนี้: db.Sensors.findAll({ where: { nodeid: node.nodeid } }).success(function (sensors) { var nodedata = JSON.parse(JSON.stringify(node)); // this is my trick nodedata.sensors = sensors; nodesensors.push(nodedata); response.json(nodesensors); }); ดังนั้นสิ่งที่ปกติในการเพิ่มคุณสมบัติใหม่ให้กับวัตถุ ถ้ามันช่วยได้ฉันใช้ sequelize-postgres เวอร์ชัน 2.0.x. อัปเดต console.log (โหนด): { dataValues: { nodeid: 'NodeId', name: 'NameHere', altname: 'Test9', longname: '', latitude: 30, longitude: …

1
DeprecationWarning: ค่าบูลีนถูกส่งผ่านไปยัง options.operatorsAliases นี่คือ no-op พร้อม v5 และควรถูกลบออก
ฉันได้รับข้อผิดพลาดด้านล่างของ expressJs ด้วย Sequelize DeprecationWarning: A boolean value was passed to options.operatorsAliases. This is a no-op with v5 and should be removed. มีความคิดใดที่จะแก้ไขปัญหานี้?

3
@ ประเภท / ข้อผิดพลาดตามลำดับ TS1086: ไม่สามารถประกาศการเข้าถึงได้ในบริบทแวดล้อม
ฉันมีโครงการที่แสดงข้อผิดพลาดนี้เมื่อฉันเรียกใช้ 'tsc': ../modules/node_modules/sequelize/types/lib/transaction.d.ts:33:14 - error TS1086: An accessor cannot be declared in an ambient context. 33 static get LOCK(): LOCK; ~~~~ ../modules/node_modules/sequelize/types/lib/transaction.d.ts:40:7 - error TS1086: An accessor cannot be declared in an ambient context. 40 get LOCK(): LOCK; ~~~~ เวอร์ชันของฉันคือ: "@ types / sequelize": "^ 4.28.6" "sequelize": "^ 5.8.10" "sequelize-typescript": …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.