From cb848181175bf190ec5ddf73086bd5608e17ec3b Mon Sep 17 00:00:00 2001 From: Diogo Resende Date: Thu, 10 Jan 2013 13:09:45 +0000 Subject: [PATCH] Force people to look at orm2 --- README.md | 206 ------------------------------------------------------ 1 file changed, 206 deletions(-) diff --git a/README.md b/README.md index 9ab28ca..18da9db 100644 --- a/README.md +++ b/README.md @@ -12,209 +12,3 @@ NodeJS ORM **** **** - -## About - -Node-ORM is a NodeJS module for multiple databases using Object-Relational Mapping with -some cool features like validators and hooks. New features are added by suggestion issues -or when I remember I need something. I make a strong effort not to change the API, but -sometimes it can happen. If you don't want to get into trouble I suggest you to define -your package.json (in project) to use a specific version of ORM (and not >= x.y.z). - -## Installing - -Install using NPM: - - npm install orm - -## Connecting to a Database (MySQL in the example) - -You can check the [API](https://github.com/dresende/node-orm/wiki) for a more detailed overview. - - var orm = require("orm"); - var db = orm.connect("mysql://username:password@hostname/database", function (success, db) { - if (!success) { - console.log("Could not connect to database!"); - return; - } - - // you can now use db variable to define models - }); - -## Connecting via raw database API - - var orm = require("orm"); - var mysql = require("mysql"); - var client = mysql.createClient({ - user: 'root', - password: 'root' - }); - var db = orm.connect("mysql", client, function (success, db) { - // same as above... - }); - -This allows you to generate your own database objects that conform to the following postgres and mysql libraries: - - * Mysql: https://github.com/felixge/node-mysql - * Postgres: https://github.com/brianc/node-postgres - -## Defining a model - - var Person = db.define("person", { - "name" : { "type": "string" }, - "surname": { "type": "string", "default": "" }, - "age" : { "type": "int" } - }, { - "methods" : { - "fullName" :function () { - return this.name + " " + this.surname; - } - } - }); - -## Adding associations - - Person.hasOne("father", Person); - // or just - Person.hasOne("mother"); // defaults to same model - - Person.hasMany("friends", Person, "friend"); // will create a table "person_friends" with 2 fields (person_id and friend_id) - -## Creating the model on the database - - Person.sync(); - -Note: `sync()` only creates tables at the moment; table modifications will be added in an upcoming version. - -## Creating and using a record - - var John = new Person({ - "name" : "John", - "surname" : "Doe", - "age" : 20 - }); - console.log("Hello, my name is " + John.fullName() + " and I'm " + John.age + " years old"); - -## Saving record to database - - John.save(function (err, JohnCopy) { - if (!err) { - console.log("Saved! ID=" + John.id); // you can use John or JohnCopy - } else { - console.log("Something went wrong..."); - console.dir(err); - } - }); - -## Changing associations - -I think an example is better to explain. - - John.setFather(Jeremy, function () { - John.setMother(Jane, function () { - John.addFriends(Jeremy, Jane, function () { - console.log("Jeremy and Jane (John's parents) are now his friends too"); - }); - }); - }); - -If you want there's also this methods: - - John.getFather(function (JohnFather) { - console.log("John's father is " + JohnFather.name); - }); - John.unsetMother(function () { - console.log("John has no mother now!"); - }); - John.removeFriends(Jeremy, Jane, function () { - console.log("John has no friends now!"); - }); - // or just don't send any, all will be removed - John.removeFriends(function () { - console.log("John has no friends now!"); - }); - -## Database Support - -Currently this module supports the following database types: - -1. MySQL -2. PostgreSQL -3. MongoDB (alpha) - -## Supported Types - -This values are still just supported for .sync() (table creations), not for other instance operations like .save() (yet). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionMySQL TypePostgreSQL TypeMongoDB Type
stringSmall textVARCHAR(255)VARCHAR(255)String
textBig textTEXTTEXTString
int, integer, num, numberSigned integerINTINTEGERInt
floatFloating point numberFLOATREALFloat
bool, booleanTrue or false valueTINYINT(1) (true=1, false=0)BOOLEANBoolean
dateDate/time value (seconds precision)DATETIMETIMESTAMP?
dataBinary dataBLOBBYTEAString
enumEnumerated valueENUMENUMString
struct, objectGeneric (and simple) objectTEXT (saved as JSON)TEXT (saved as JSON)Object