我正准备把老婆往产品方向培养呢。各位有基础的职位可以推荐下啊。哈哈
#36 楼 @zj0713001 非常感谢。我又在忙着造另外一个脚本呢。所以这个脚本暂时没时间改造了。但是后期必须改造的 另外@donnior 兄这个改造是相当牛了。从 method 的 name 都帮我改了。灰仓之感谢~
#28 楼 @zj0713001 非常感谢,您的代码真是不错。我就膜拜了~
#26 楼 @zj0713001 哦。好的。以后改正,谢谢~
#15 楼 @wppurking 谢谢,虽然只是一个脚本,但是在做数据迁移的时候就会用到,不是很频繁。但是会不定期持续使用,再者本人觉得代码实在是太烂了。所以就发上来,烦请各位大大帮忙找 bug,我会进一步按照各位的 建议去持续修改代码~。虽然是小东西,但是里面所包含的一些问题是通用的,因为刚开始学,对很多东西不是很确定。而各位的建议正好给我一个方向,指出了我的错误,帮助我成长~非常感谢~
#13 楼 @neverlandxy_naix 新手。我可以告诉你这是我的第二个在生产环境上使用的 ruby 程序么~在搞 rails,但是还没太明白。所以,为了追求“先把活干了”所以就直接这么好了~ 好的东东,老兄推荐啊~不胜感激~
大家可以把我这个代码作为最烂代码实践。来给新手普及下如何不要写出这么烂的代码~
灰常感谢各位。已经格式化了 烦请@wppurking 删掉您的~,尽量让大家的讨论集中点。谢谢了~
#!/usr/bin/env ruby
# encoding: utf-8
#copy tag from test env to prod env
require 'mysql2'
class TagCopy
def initialize
@from_db = Mysql2::Client.new(:host => "192.168.xx.xx", :port => 3306, :username => "mysql", :password => "mysql", :database => "mydb")
@to_db = Mysql2::Client.new(:host => "192.168.xx1.xx2", :port => 3306, :username => "root", :password => "root", :database => "mydb")
end
def get_tag_by_key(tag_key)
#escape param to defend sql injection
param = @from_db.escape(tag_key)
sql = "" "SELECT id,no,tag_key,tag_name,tag_url,tag_desc,structure,type,isleaf,child,level, brand_no,category_no,channel_no,other_no,
row_num, site,sort_no, ad_quantity, image_size,parent_id,enable_more FROM tbl_cms_tags where tag_key = '#{param}' " "";
puts sql
results = @from_db.query(sql)
uuid =@to_db.query("SELECT REPLACE(UUID(),'-','')", :as => :array)
uuid = uuid.to_a[0]
puts "total #{results.count} records "
sql_root_id = "select id from tbl_cms_tags where tag_key ='ol_main'"
rid = @to_db.query(sql_root_id)
srid = rid.to_a[0]
results.each do |row|
#puts row.inspect
add_tag(row,uuid[0],srid[0])
if row["child"] >0
getChild(uuid[0],row["id"])
end
end
@from_db.close
@to_db.close
end
def getChild(new_pid,parent_id)
sql = "" "SELECT id,no,tag_key,tag_name,tag_url,tag_desc,structure,type,isleaf,child,level, brand_no,category_no,channel_no,other_no,
row_num, site,sort_no, ad_quantity, image_size,parent_id,enable_more FROM tbl_cms_tags where parent_id = '#{parent_id}' " "";
results = @from_db.query(sql);
results.each do |row|
uuid =@to_db.query("SELECT REPLACE(UUID(),'-','')", :as => :array);
uuid = uuid.to_a[0]
add_tag(row,uuid[0],new_pid)
#puts row.inspect
if row["child"] >0
getChild(uuid[0],row["id"])
end
end
end
def add_tag(row,id,parent_id)
site = row["site"]?row["site"] : 0
row_num = row["row_num"]?row["site"] : 1
sort_no = row["sort_no"]?row["sort_no"] :0
insert_sql ="" "INSERT INTO yitian_b2c_db.tbl_cms_tags
(id,no,tag_key,tag_name,tag_url,tag_desc,structure,type,isleaf,child,level,brand_no,category_no,channel_no,other_no,row_num,site,sort_no,ad_quantity,image_size,parent_id,enable_more)
VALUES
('#{id}','#{row["no"]}','#{row["tag_key"]}','#{row["tag_name"]}','#{row["tag_url"] }','#{row["tag_desc"] }','#{row["structure"] }',
'#{row["type"] }','#{row["isleaf"] }',#{row["child"] },#{row["level"] },'#{row["brand_no"] }','#{row["category_no"] }','#{row["channel_no"] }',
'#{row["other_no"] }',#{row_num},#{site},#{ sort_no },0,#{row["image_size"]},'#{"#{parent_id}"}',#{row["enable_more"] }) " ""
puts insert_sql
@to_db.query(insert_sql)
end
end
if __FILE__ == $0
tc = TagCopy.new
tc.get_tag_by_key("ol_index")
end
同志。本人教育学毕业,会 java,正在努力攻读 ruby。可以做兼职么。ps:不要工资的,纯粹兴趣爱好~ 主要是看好教育这一块~
有质量的帖子还是很重要的
是不是有了这个键盘,bug 几率就会减少呢。。话说之前一直不懂什么叫机械。。。今天还专门 google 了一把。哈哈
哈哈。哈哈。过一会儿就有 pdf 了哈
确实很心动,但是太远了 目前没有折腾的心思啊
我想问 大师对于 Ruby 不同版本的语法变化比较大(甚至不兼容)这方面在后期有什么样的计划~,后期会不会稳定下来,例如 ruby1.8 和 1.9 python2.7 和 3.0。刚开始接触 ruby,别的谈不上来~但是感觉 ruby 和 python 就在版本兼容性上真的很令人抓狂~
额。好的,非常感谢。我还以为我的什么信息没填全呢。我看了也觉得没什么遗漏了,呵呵
不知道这个我理解的对不对。即使这个理解是正确的,我还是无法明白 x,y=y,x 这样赋值会交换,x 和 y