# define your columns and types here
columns_types = {"created_at" : "DATETIME", "updated_at" : "DATETIME"}
# tables you want to skip
skip_tables = ["main_defs", "main_menu_items", "delayed_jobs", "delayed_job_workers", "delayed_job_logs"]
# get a reference to the schema in the model. This will get the 1st schema in it.
schema = grt.root.wb.doc.physicalModels[0].catalog.schemata[0]
# iterate through all tables
for table in schema.tables:
# skip the current table if it is in skip_tables
if table.name in skip_tables:
continue
# iterate through all columns to be added
for column_name, type in columns_types.items():
# skip this column_name if there is already a column with this name
column_names = [x.name for x in table.columns]
if column_name in column_names:
continue
# create a new column object and set its name
column = grt.classes.db_mysql_Column()
column.name = column_name
# add it to the table
table.addColumn(column)
# set the datatype of the column
column.setParseType(type, None)
您可以在 MySQL Workbench 的 Scripting Shell 中使用此 Python 脚本。它是此处找到的脚本的改进版本:http: //mysqlworkbench.org/2012/06/mysql-workbench-script-for-adding-columns-to-all-tables-in-a-model/
在 ruby on rails 中,您不必分别创建 created_at 和 updated_at 列。当您运行
t.timestamps
迁移文件中编写的迁移时,会在表中创建created_at
和updated_at
列。例如这将创建一个带有列的学生表
id, name, created_at and updated_at
。