I'm using Node.js and Knex to build a service for my router. However, I can't figure out how to add a column to an existing table, any help would be appreciated. Also, I'm using PostgreSQL, but I don't think that matters for the question.
So, this is what I have for adding rows to the table:
insertData(knex, table, row) {
return knex
.insert(row)
.into(table)
.returning('*')
.then(rows => {
return rows[0];
});
}
I'm guessing adding a column to the table would be something similar to this? I just can't figure out/find the solution.
For migrations:
This was taken from this article
knex migrate:make add_new_column_to_table
exports.up = function(knex) {
return knex.schema.table('<table name>', table => {
table.string('<new column name>', 128);
})
};
exports.down = function(knex) {
return knex.schema.table('<table name>', table => {
table.dropColumn('<new column name>');
})
};
knex migrate:latest
The answers above are correct EXCEPT...
Make sure to write "knex.schema.alterTable" instead of "knex.schema.table".
Below is correct:
return knex.schema.alterTable('<table name>', table => {
table.dropColumn('<new column name>');
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With